ifnull(trees.primarycolor, '') LIKE %,
开始问题: 您好,互联网,家庭,同事和随机陌生人的朋友。我有一种困境,肯定会激发那里的网站管理员。
我的查询如下:
$result = mysql_query("SELECT trees.*
$bottom_query
FROM trees
INNER JOIN price
ON trees.ID=price.treeid
where trees.primarycolor like
'$primary_color'
and trees.secondarycolor like
'$secondary_color'
and trees.fallcolor like
'$fall_color'
and trees.droughtresistant like
'$drought_resistant'
and trees.height like
'$height'
and trees.spread like
'$spread'
and trees.trunkcolor like
'$trunk_color'
and trees.flowering like
'$flowering'
and trees.fruitproducing like
'$fruit_producing'
");
$ var_name是字符串,如红色或绿色或true或false或通配符%。
打印出的实际查询如下:
SELECT trees.* , price.10mm , price.20mm FROM trees INNER JOIN price ON
trees.ID=price.treeid where trees.primarycolor like '%' and trees.secondarycolor like '%'
and trees.fallcolor like '%' and trees.droughtresistant like '%' and trees.height like
'%' and trees.spread like '%' and trees.trunkcolor like '%' and trees.flowering like '%'
and trees.fruitproducing like '%'
我的问题是,即使WHERE CLAUSE中包含所有通配符,查询也不会返回任何结果。
我正在使用PHP和HTML - 不确定哪些版本,最有可能是最新版本。
我想使用%作为*来选择数据库中任何类型的所有类型。
请帮助我互联网的好人,荣耀归你的:D
答案 0 :(得分:2)
如果未选择过滤器,请不要使用WHERE子句。无论如何,这将在服务器上运行得更快,效率更高。保持所有查询尽可能简单,以避免在不需要的地方加载。如果做出选择,只在查询的WHERE子句中添加。不要使用仍然返回所有记录的LIKE子句。根据输入动态构建WHERE子句是可行的方法。更多的工作,但从长远来看会更好。