gpt4 book ai didi

mysql - 忽略基于 where 子句的列

转载 作者:可可西里 更新时间:2023-11-01 07:57:02 26 4
gpt4 key购买 nike

编辑:

所以,似乎我想做的具体事情有些困惑,所以我要改变我的例子。

我有一个名为 example_table 的表:

id       code1      code2
-------------------------
1 1780 4245
2 1781 4280
3 1900 1200
4 2800 4217
5 2817 1782

有了这个,我想找到类似的东西,

SELECT * FROM example_table WHERE code1 LIKE '%17%' OR code2 LIKE '%17%';

我想要这个返回

id      code1      code2
------------------------
1 1780 null
2 1781 null
4 null 4217
5 2817 1782

因此您会注意到它会将任何与任一列都不匹配的结果清空,如果两者都存在,它将同时获取。

最佳答案

从字面上看,你可以做这样的事情......

SELECT
first_name,
CASE WHEN last_name = 'Smith' THEN last_name ELSE maiden_name END
FROM
users
WHERE
last_name = 'Smith'
OR maiden_name = 'Smith'

但是,实际上,无论匹配哪个字段,它都会是“Smith”,所以何必呢,就这样做吧?

SELECT
first_name,
'Smith'
FROM
users
WHERE
last_name = 'Smith'
OR maiden_name = 'Smith'


编辑:根据您编辑的问题...

SELECT
id,
CASE WHEN code1 LIKE '%17%' THEN code1 ELSE NULL END AS code1,
CASE WHEN code2 LIKE '%17%' THEN code2 ELSE NULL END AS code2
FROM
example_table
WHERE
code1 LIKE '%17%'
OR code2 LIKE '%17%'
;

关于mysql - 忽略基于 where 子句的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10838791/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com