mysql使用like查找两个表

标签 mysql

我坚持使用以下查询,在放弃幽灵之前它似乎部分有效。我不是专家,但如果能提供任何帮助,我将不胜感激。

我有两张 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/

相关文章:

mysql - 具有许多 "exception"列的大表

mysql - 如何合并具有相似时间戳的两行并同时返回

php - PHP提交后重新加载页面数据

php - 禁止 :You don't have permission to access/phpmyadmin on this server

java - JDBC 准备语句语法错误

mysql - 如何在 MySQL 的表单字段中接受撇号

mysql - 如何在 ubuntu-18.04 mariadb mysql 5.7 上设置 lower_case_table_names = 1

使用用户输入的java sql更新语句

php - 散列密码 : hash() expects at least 2 parameters, 1 给定 APP/Model/Entity/User.php 时 CakePHP 3 出错

php - 随机且唯一的 Mysql 选择查询