gpt4 book ai didi

mysql - 从表中选择值 LIKE 从另一个表中选择值

转载 作者:行者123 更新时间:2023-11-29 01:17:52 26 4
gpt4 key购买 nike

我的 MySQL 数据库有两个表:用户和项目。它们看起来像这样:

用户:

id | user_name | desc
--------------------------
1 | john | tall
2 | dave | fat
3 | maria | pretty

项目:

id | item_name | color
--------------------------
1 | trousers | red
2 | shoes | blue
3 | shoes | red

我想从数据库中选择具有特定 ID 和名称的项目列表,就像一个关键字。它用于简单的搜索引擎。我正在做这样的查询:

SELECT id, user_name, ( SELECT item_name FROM items WHERE id = u.id ) as desc FROM users u WHERE desc LIKE "%shoes%" AND color LIKE "%blue%"

因此,我希望一行包含 id = 2、username = dave 和 itemname = shoes,因为这是唯一满足我查询的一行。不幸的是,我收到一条消息,指出没有“desc”列。我知道 'users' 中没有这样的列,但是如何告诉 MySQL 从名为 desc 的子查询中获取它?

附加问题:是否可以使用 WHERE ... LIKE 命令和数组样式(如 IN (val1, val2, val3))?我的意思是而不是 loooong 查询:

SELECT name 
FROM users
WHERE name
LIKE "%john%" OR name
LIKE "%steven%" OR name LIKE "bob%"

缩短:

SELECT name FROM users WHERE name LIKE IN ( "%john%", "%steven%", "%bob%")

提前致谢。

最佳答案

试试这个:

SELECT 
u.id, u.user_name, i.item_name, i.color
FROM
users AS u,
items AS i
WHERE
i.id = u.id
AND
i.item_name LIKE "%shoes%"
AND
i.color LIKE "%blue%"

对于第二部分,如果您在 MySQL dev site 上查看此页面你会看到你可以使用 REGEXP 来匹配你的结果而不是 LIKE 所以你我认为你可以使用像

这样的东西

REGEXP 'john|steven|bob'

关于mysql - 从表中选择值 LIKE 从另一个表中选择值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10400884/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com