查找_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
提交
取消