mysql_query使用OR从多个列中进行选择

时间:2012-06-05 23:29:49

标签: php mysql

我有:

$sql = mysql_query("select * from articles where articletitle OR articledescription OR articletags like '%$term%'");

并且不会返回任何结果。

我在这里使用OR不正确吗?

由于

4 个答案:

答案 0 :(得分:2)

您需要将LIKE添加到所有三个子句中:

SELECT * FROM articles WHERE (articletitle LIKE '%$term%') OR (articledescription LIKE '%$term%') OR (articletags LIKE '%$term%');

答案 1 :(得分:1)

没有..你需要每次都使用类似的'...'

$sql = mysql_query("select * from articles where articletitle like '%$term%' OR 
articledescription like '%$term%' OR articletags like '%$term%'");

答案 2 :(得分:1)

是。 :-)你错误地使用它。

select * from articles where (articletitle like '%$term%') 
OR (articledescription like '%$term%') OR (articletags like '%$term%')

答案 3 :(得分:0)

在旁边评论中,如果$ term正好(减去双引号)“'; DELETE FROM articles; - ”会发生什么? (如果您的原始查询有这样的话,请在单引号后添加一个结束语。)我建议您依赖某些类似sprintf的工具(在PHP中通常意味着您需要准备好的语句)而不是被称为魔术引号的弃用错误。