SQL在搜索不同列时忽略WHERE

时间:2013-03-18 15:56:58

标签: mysql sql where sql-like

我有一个忽略WHERE函数部分的SQL查询。

SELECT col1, col2, col3, col4
FROM table
WHERE col1 = 'yes'
AND col2 = 'no'
AND col3 || col4
LIKE '%maybe%'

如果没有最后一个AND函数,它会返回正确的行,但是使用LIKE函数,它会在col1中带回“no”的行。

2 个答案:

答案 0 :(得分:6)

我打算猜测你打算发布LIKE语句 - 在这种情况下你想要:

SELECT col1, col2, col3, col4
FROM table
WHERE col1 = 'yes'
AND col2 = 'no'
AND (col3 LIKE '%maybe%'  OR col4 LIKE '%maybe%')

答案 1 :(得分:1)

如果要连接col3col4,mysql中正确的语法是使用CONCAT函数:

SELECT
  col1, col2, col3, col4
FROM
  table
WHERE
  col1 = 'yes'
  AND col2 = 'no'
  AND CONCAT(col3, col4) LIKE '%maybe%'

while ||是OR运算符。

请参阅小提琴here