Php 为什么这个查询(Mysql)没有';不行?
这是我的查询(Mysql) 我想在WHERE子句中添加一个条件,我的条件是(WHERE State='3'),我是这样做的:Php 为什么这个查询(Mysql)没有';不行?,php,mysql,Php,Mysql,这是我的查询(Mysql) 我想在WHERE子句中添加一个条件,我的条件是(WHERE State='3'),我是这样做的: $query_Search = 'SELECT ID, Titre , Categorie, Description, Province , Com_Territ, Type_Annonce, Prix, Devise, Date, State FROM articles
$query_Search = 'SELECT ID, Titre , Categorie, Description, Province , Com_Territ, Type_Annonce, Prix, Devise, Date, State
FROM articles
WHERE State='3' AND Titre LIKE \'%' . safe( $_POST['q'] ) . '%\' OR Categorie LIKE \'%' . safe( $_POST['q'] ) . '%\'
ORDER BY CASE WHEN Titre LIKE \'' . safe( $_POST['q'] ) . '%\' THEN 0
WHEN Titre LIKE \'%' . safe( $_POST['q'] ) . '\' THEN 1
ELSE 2 END';
此查询显示一些状态不等于3的结果,似乎不关心条件(其中State='3')就像上面提到的putvande一样,请尝试以下操作:
$query_Search = 'SELECT ID, Titre , Categorie, Description, Province , Com_Territ, Type_Annonce, Prix, Devise, Date, State
FROM articles
WHERE State='3' AND (Titre LIKE \'%' . safe( $_POST['q'] ) . '%\' OR Categorie LIKE \'%' . safe( $_POST['q'] ) . '%\' )
ORDER BY CASE WHEN Titre LIKE \'' . safe( $_POST['q'] ) . '%\' THEN 0
WHEN Titre LIKE \'%' . safe( $_POST['q'] ) . '\' THEN 1
ELSE 2 END';
在
WHERE
语句中有或,因此可以得到State=3的列!还有别的。
添加一些(
和)
将您的语句分组如下:
WHERE State='3' AND (Titre LIKE \'%' . safe( $_POST['q'] ) . '%\' OR Categorie LIKE \'%' . safe( $_POST['q'] ) . '%\')
好。。你也有一些或在那里..谢谢,这是新手犯的错误
WHERE State='3' AND (Titre LIKE \'%' . safe( $_POST['q'] ) . '%\' OR Categorie LIKE \'%' . safe( $_POST['q'] ) . '%\')