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

墨色風(fēng)雨
TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超6個(gè)贊
companyID IN ('1,2,3')
companyID IN ('2,3,1')

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