Php 按条件获取SQL行
我试图根据某些条件获取一些行,但它没有按照我想要的方式工作; 请查看我的代码并分享您的想法Php 按条件获取SQL行,php,mysql,sql,Php,Mysql,Sql,我试图根据某些条件获取一些行,但它没有按照我想要的方式工作; 请查看我的代码并分享您的想法 $query = mysqli_query($sqli,"SELECT * FROM `table` WHERE `name` = '$nameFA' OR `name` = '$nameLA' OR `ft` LI
$query = mysqli_query($sqli,"SELECT * FROM `table` WHERE
`name` = '$nameFA' OR
`name` = '$nameLA' OR
`ft` LIKE '%$nameFA%' OR
`ft` LIKE '%$nameLA%' AND
`information` LIKE '%$info%'
");
如您所见,name
和ft
的输入可能有两个不同的值。
如果信息
具有类似$info
变量的内容,则应获取行。请尝试以下方法:
$query = mysqli_query($sqli,"SELECT * FROM `table` WHERE
(`name` = '$nameFA' OR
`name` = '$nameLA' OR
`ft` LIKE '%$nameFA%' OR
`ft` LIKE '%$nameLA%')
AND `information` LIKE '%$info%'
");
或者这样,因为我不知道您想做什么,所以我们不知道如何放置括号:
$query = mysqli_query($sqli,"SELECT * FROM `table` WHERE
`name` = '$nameFA' OR
`name` = '$nameLA' OR
`ft` LIKE '%$nameFA%' OR
(`ft` LIKE '%$nameLA%' AND
`information` LIKE '%$info%'
)
");
语句中有多个AND或OR时,始终添加括号
考虑:
- a=做一只狗
- b=吠叫
- c=步行
a或(b和C)在以下情况下为真:你是一只狗,或(吠叫和走路)你混合了
或和以及条件,而没有()
来界定它们。除非您非常熟悉mysql的运算符优先级规则,否则我建议您输入显式的()
,以确定您的逻辑应该是什么。e、 g.(X或Y或Z)和(P)
代码始终有效。有时它并没有达到我们想要的效果。也许如果你提供表格和所需的输出?@MarcB,thnx用于快速响应,我从未在没有()
的情况下使用或和和,这会是个问题吗?我写了很多类似上面的查询。我搞不懂你在说什么,你能按照你说的方式重写查询吗?我不知道你的逻辑应该是什么,所以我所要做的就是以一种仍然无法使查询正常工作的方式乱丢括号。试着指定输入是什么,你希望它做什么,它实际在做什么