Mysql喜欢抛出语法错误的子句?

时间:2013-01-24 10:38:30

标签: mysql sql-like

我在系统中生成以下查询:

SELECT * FROM (`videos`) WHERE (
    `videos`.`title` LIKE "%apple%" 
  OR WHERE 
    `videos`.`byline` LIKE "%apple%" 
  OR WHERE `videos`.`description` LIKE "%apple%"
);

但是,这会引发语法错误。

那么,怎么了?

请注意,我需要括号,因为这三个where是相互关联的,通常后跟单独的AND WHERE

3 个答案:

答案 0 :(得分:3)

Sql语句在文字值周围使用单引号。在这种情况下,只需要一个where子句。只需使用一个where子句,然后使用or连接谓词。该脚本还有一些不需要的括号。

最终结果如下:

SELECT * FROM `videos` WHERE
    `videos`.`title` LIKE '%apple%' OR 
    `videos`.`byline` LIKE '%apple%' OR 
    `videos`.`description` LIKE '%apple%';

答案 1 :(得分:0)

是OR WHERE有效的SQL吗? 试试这个:

SELECT * FROM (`videos`) WHERE (
    `videos`.`title` LIKE "%apple%" 
  OR  
    `videos`.`byline` LIKE "%apple%" 
  OR `videos`.`description` LIKE "%apple%"
);

答案 2 :(得分:0)

将“或WHERE ”替换为“ WHERE ”,并将双引号替换为单引号“ - - >'