我有兩個表的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