我的数据库中有2个表.一个是订单,一个是公司.
订单具有以下结构:
OrderID | attachedCompanyIDs
------------------------------------
1 1,2,3
2 2,4
Run Code Online (Sandbox Code Playgroud)
公司有这样的结构:
CompanyID | name
--------------------------------------
1 Company 1
2 Another Company
3 StackOverflow
4 Nothing
Run Code Online (Sandbox Code Playgroud)
要获得订单的公司名称,我可以这样查询:
SELECT name FROM orders,company
WHERE orderID = 1 AND FIND_IN_SET(companyID, attachedCompanyIDs)
Run Code Online (Sandbox Code Playgroud)
该查询工作正常,但以下查询没有.
SELECT name FROM orders,company
WHERE orderID = 1 AND companyID IN (attachedCompanyIDs)
Run Code Online (Sandbox Code Playgroud)
为什么第一个查询有效但第二个查询无效?
第一个查询返回:
name
---------------
Company 1
Another Company
StackOverflow
Run Code Online (Sandbox Code Playgroud)
第二个查询只返回:
name
---------------
Company 1
Run Code Online (Sandbox Code Playgroud)
为什么这样,为什么第一个查询返回所有公司,但第二个查询只返回第一个查询?
我的表中有一个字段COLORS (varchar(50)),SHIRTS其中包含逗号分隔的字符串,例如1,2,5,12,15,.每个数字代表可用的颜色.
当运行查询select * from shirts where colors like '%1%'以获得所有红色衬衫(颜色= 1)时,我还得到颜色为灰色(= 12)和橙色(= 15)的衬衫.
我应该如何重写查询,以便仅选择颜色1而不是所有包含数字1的颜色?
我有一个带有varchar列的表categoryIds.它包含一些用逗号分隔的ID,例如:
id categoryIds
--------------------
1 3,7,12,33,43
Run Code Online (Sandbox Code Playgroud)
我想做一个select语句并检查该列中是否存在int.像这样的东西:
select *
from myTable
where 3 in (categoryIds)
Run Code Online (Sandbox Code Playgroud)
我知道这是可能在MySQL做这个,但它可以在SQL Server来完成呢?
我已经尝试将int转换为char,它运行以下语句:
select *
from myTable
where '3' in (categoryIds)
Run Code Online (Sandbox Code Playgroud)
但它似乎没有任何"开箱即用"支持逗号分隔列表,因为它什么都不返回.
大家好我有这种情况
tabperfil
ta
bperfil.Cidade_Id -> values = 12,34,645,21
Run Code Online (Sandbox Code Playgroud)
然后我有一个 $id = 12
所以我试着做这个查询
select * from tabperfil limit 0,5
Run Code Online (Sandbox Code Playgroud)
但有一个condiction得到的价值Cidade_Id和检查$id
如果是相反的情况,我知道
select * from tabperfil WHERE Cidade_Id IN ($id)
Run Code Online (Sandbox Code Playgroud)
那么如何做这样的事情
select * from tabperfil WHERE ($id) in Cidade_Id
Run Code Online (Sandbox Code Playgroud) 我将这样存储的值存储在字段中1,255,230,265。
MySQL中是否有一个函数可以为我提供该字符串中的第二个值?在这种情况下会是255。
我尝试使用locate,但这似乎并不意味着这样做。
mysql ×4
sql ×3
arrays ×1
database ×1
find-in-set ×1
php ×1
select ×1
sql-like ×1
sql-server ×1