我正在建立新闻网站。
我正在尝试仅打印右侧end_date内的新闻,但有些我不能让它工作
$sql2 = "SELECT * FROM p_news WHERE CURDATE() < end_date AND WHERE title LIKE '%$search%'";
当我尝试回显sql,并在phpmyadmin中测试它
它收到此错误
您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 靠近&#39; WHERE标题喜欢&#39;%test%&#39;限制0,30和#39;在第1行
答案 0 :(得分:1)
全是documented:
SELECT [ALL | DISTINCT | DISTINCTROW ] [HIGH_PRIORITY] [MAX_STATEMENT_TIME = N] [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] select_expr [, select_expr ...] [FROM table_references [PARTITION partition_list] [WHERE where_condition] [GROUP BY {col_name | expr | position} [ASC | DESC], ... [WITH ROLLUP]] [HAVING where_condition] [ORDER BY {col_name | expr | position} [ASC | DESC], ...] [LIMIT {[offset,] row_count | row_count OFFSET offset}] [PROCEDURE procedure_name(argument_list)] [INTO OUTFILE 'file_name' [CHARACTER SET charset_name] export_options | INTO DUMPFILE 'file_name' | INTO var_name [, var_name]] [FOR UPDATE | LOCK IN SHARE MODE]]
换句话说,您可以拥有零个或一个WHERE
但不能两个。
和
如果给出WHERE子句,则表示条件或条件 行必须满足才能被选中。 where_condition是一个 对于要选择的每一行,计算结果为true的表达式。该 如果没有WHERE子句,则语句选择所有行。
在WHERE表达式中,您可以使用任何函数和 MySQL支持的运算符,聚合(摘要)除外 功能。请参阅Section 9.5, “Expression Syntax”和Chapter 12, Functions and Operators。
答案 1 :(得分:0)
您只能有一个WHERE子句,其中的每个条件都需要加入AND或OR ...
SELECT *
FROM p_news
WHERE CURDATE() < end_date
AND title LIKE '%$search%'
OR
SELECT *
FROM p_news
WHERE CURDATE() < end_date
OR title LIKE '%$search%'