当您独自工作并且迷失在自己的脑海中时,偶尔会出现令人讨厌的问题之一!我完全期待答案很简单:
我有一个这样的查询:
SELECT * FROM table_a
LEFT JOIN table_b ON table_a.order_id = table_b.order_id
WHERE (table_a.column_a='string' OR table_b.column_b='string' OR table_b.column_c='string')
group by column_d
该查询正在返回所有行,并且似乎忽略了查询的 WHERE 部分……但事实并非如此。如果我删除 OR 部分,它会按预期工作:
SELECT * FROM table_a
LEFT JOIN table_b ON table_a.order_id = table_b.order_id
WHERE (table_a.column_a='string')
group by column_d
想法/明显的问题?
更新
我的具体问题是我正在针对一个整数列评估一个字符串,这意味着该语句评估为未知。代码现在如上,但如果字符串是数字,我只添加特定的 OR