我有两个表的mysql数据库:用户和项目。他们是这样的:mysql - 从表中选择值来自另一个表的LIKE值
用户:
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
我想从具有特定的标识和名称的它就像一个关键字项目的数据库列表中进行选择。这是使用简单的搜索引擎。 我作出这样的查询:
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一行,用户名=戴夫和ITEMNAME =鞋,因为它是唯一一个行履行我的查询。不幸的是我收到一条消息,说没有'desc'列。我知道'users'中没有这样的列,但是如何告诉mysql从名为desc的子查询中获取它?
附加问题:是否可以使用WHERE ... LIKE命令和数组样式,如IN(val1,val2,val3)?我的意思是不是过长...查询:
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%")
感谢。
谢谢 - 你的建议对我很好。没读你提出的文章,但我会。 +1为你 – Kalreg