查询问题

时间:2012-10-01 09:12:49

标签: php sql

我有这个查询对我来说效果不好,我已经一遍又一遍地审阅了它。 这有什么不对?

$sql3="
  SELECT * 
  FROM hostess 
  WHERE id_ag='$id_ag' AND (id!='$hostess_id2' && id!='$hostess_id1')"; 

4 个答案:

答案 0 :(得分:3)

你应该改变:

id!='$hostess_id2' && id!='$hostess_id1'

id!='$hostess_id2' || id!='$hostess_id1'

您无法将相同的列值与&&运算符进行比较,因为它将是第一个值或第二个值。

答案 1 :(得分:1)

使用NOT IN构造。

$sql3="
  SELECT * 
  FROM hostess 
  WHERE id_ag='$id_ag' AND id NOT IN ($hostess_id2, $hostess_id1)"; 

答案 2 :(得分:0)

变化

(id!='$hostess_id2' && id!='$hostess_id1')

(id!='$hostess_id2' AND id!='$hostess_id1')

OR

(id!='$hostess_id2' OR id!='$hostess_id1')

您已插入&&而不是AND

答案 3 :(得分:0)

试试这个,

$sql3="SELECT * FROM hostess WHERE id_ag='$id_ag' AND id<>'$hostess_id2' AND id<>'$hostess_id1'";