如何调整此查询以获得我的预期结果?

时间:2013-10-28 16:48:02

标签: php mysql

<?php include "includes/connect.php";
$query=mysqli_query($connect,"SELECT * FROM users WHERE
Gender LIKE 'female'
&& Travel LIKE 'yes'
OR Hiking LIKE 'yes'");

名称--------性别------- --------旅行远足

乔------------ -----------男性是-----------是
 玛丽---------- ---------女是-----------是
 简---------- ---------女无------------是

  结果:


 玛丽

我正在寻找结果:

玛丽

更新:我希望查询检查用户是否是喜欢旅行或徒步旅行然后返回的女性 更新:已回答。谢谢大家:)

SELECT * FROM users 
 WHERE Gender = 'female'
   AND ( Travel = 'yes'
      OR Hiking = 'yes')

3 个答案:

答案 0 :(得分:2)

试试这个

SELECT * FROM users WHERE
Gender LIKE '%female%'
AND Travel LIKE '%yes%'
OR Hiking LIKE '%yes%'

答案 1 :(得分:2)

如果您只想对结果进行排序,则可以执行此操作

SELECT * FROM users 
WHERE Gender = 'female'
    AND (Travel = 'yes' OR Hiking = 'yes')
ORDER BY name ASC

答案 2 :(得分:1)

在MySQL中,AND比OR高precedence,所以(除了其他人提到的错误之外)

SELECT * FROM users 
 WHERE Gender = 'female'
   AND Travel = 'yes'
    OR Hiking = 'yes'

相当于

SELECT * FROM users 
 WHERE ( Gender = 'female'
     AND Travel = 'yes')
    OR Hiking = 'yes'

因此,您正在寻找喜欢旅行的女性或任何喜欢徒步旅行的女性

如果您正在寻找喜欢旅行的女性或喜欢徒步旅行的女性,请使用

SELECT * FROM users 
 WHERE Gender = 'female'
   AND ( Travel = 'yes'
      OR Hiking = 'yes')