我坚持使用以下查询,在放弃幽灵之前它似乎部分有效。我不是专家,但如果能提供任何帮助,我将不胜感激。
我有两张 table
cms_tags
key | tag | timesused
---------------------------
1 retriever 12
2 jack retriever 1
3 energetic 5
4 bulldog 3
cms_doggies(四个字段= key,dogname,description,tags)
key dogname description tags
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1 Jack Retriever Jacks only just been with us for a short while he's a golden retriever that is energetic and loves to play with a frisbee. Does not like canned food. ,retriever,golden,energetic,frisbee
查询应该返回:
retriever
jack retriever
energetic
...相反,它只返回:
jack retriever
这里是查询:
$dogname= strtolower($_GET['dogname'])
$description= strtolower($_GET['description'])
$tags= strtolower($_GET['tags'])
SELECT `key`, `tag`
FROM `cms_tags`
WHERE `tag` LIKE '%$dogname%'
OR `tag` LIKE '%$description%'
OR `tag` LIKE '%$tags%'
ORDER BY `primkey`
LIMIT 0, $finalnumber;
最佳答案
$tags
参数的值为 ',retriever,golden,energetic,frisbee'
,因此没有匹配的行。不要使用 LIKE
,请尝试使用 IN ([Value list])
。
示例:
SELECT key, tag
FROM cms_tags
WHERE tag IN ('retriever','golden','energetic','frisbee')
此查询将返回 tag
字段具有列表中任何值的每一行。但是请注意,您不能使用通配符。
希望对你有帮助。
关于mysql使用like查找两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3232813/