查找_IN_set()vs IN()我的數據庫里有兩張桌子。一個是訂單,一個是公司。訂單的結構如下:OrderID | attachedCompanyIDs------------------------------------
1 1,2,3
2 2,4公司有這樣的結構:CompanyID | name--------------------------------------
1 Company 1
2 Another Company 3 StackOverflow 4 Nothing要獲得訂單的公司名稱,我可以這樣進行查詢:SELECT name FROM orders,companyWHERE orderID = 1 AND FIND_IN_SET(companyID, attachedCompanyIDs)該查詢工作正常,但下面的查詢不工作。SELECT name FROM orders,companyWHERE orderID = 1 AND companyID IN (attachedCompanyIDs)為什么第一個查詢工作,而不是第二個查詢?第一個查詢返回:name---------------Company 1Another Company
StackOverflow第二個查詢只返回:name---------------Company 1為什么第一個查詢返回所有公司,而第二個查詢只返回第一個查詢?
3 回答

墨色風雨
TA貢獻1853條經驗 獲得超6個贊
companyID IN ('1,2,3')
companyID IN ('2,3,1')

忽然笑
TA貢獻1806條經驗 獲得超5個贊
SELECT (SELECT GROUP_CONCAT(cmp.cmpny_name) FROM company cmp WHERE FIND_IN_SET(cmp.CompanyID, odr.attachedCompanyIDs) ) AS COMPANIESFROM orders odr
添加回答
舉報
0/150
提交
取消