2014-03-12 55 views
1

中的WHQL存在Mysql問題我在使用mysql中的「where in」子句時遇到問題,我無法弄清楚什麼是錯誤的。 所以我有兩個表...在條款

1)座椅

(INT)SEAT_ID

2)註冊

(INT)REGISTER_ID

(VARCHAR)seat_ids - 逗號例如102,103,104


因此,我的查詢匹配結果是

SELECT * FROM Seats s, Registers r 
WHERE s.seat_id IN (r.seat_ids) 
GROUP BY s.seat_id 

有人可以找出什麼是錯?謝謝,

回答

1

IN要求列表是一個文字列表,而不是逗號分隔的字符串。使用FIND_IN_SET爲:

WHERE FIND_IN_SET(s.seat_id, r.seat_ids) 
+0

哇,這確實有效:O從來沒有聽說過find_in_set!去永遠保存它!呵呵:)非常感謝 –

+0

它正好在字符串函數的文檔頁面上。 http://dev.mysql.com/doc/refman/5.1/en/string-functions.html – Barmar

0

首先改變seat_ids爲int,否則保持在那裏的座位和寄存器聯動保持一個單獨的表。

加入像下面可以幫助2個表

SELECT * FROM Seats s 
JOIN Registers r ON s.seat_id = r.seat_ids 

的俱樂部成績但這將需要座位的相同的數據類型SEAT_ID &寄存器seat_ids

還有什麼@Barmar說可以用