| id | name | numbers |
+----+---------+----------------+
| 1 | arjun | 62,45,68,95,50 |
| 2 | yuvaraj | 45,65,85,68 |
| 3 | sahadev | 45,65,85,68 |
| 4 | yogi | 45,65,85,68 |
| 5 | krishna | 45,65,85,68 |
我想要编号为45的id数据
我尝试过
select *
from table
where number=45
但它不起作用。
答案 0 :(得分:1)
如果使用like运算符,它将获得所有包含45的记录(例如345或12245或65445)。如果希望记录的值正好为“ 45”,则在使用SQL Server 2016或更高版本时,可以尝试以下代码。
select * from (
SELECT * FROM tablename
cross apply
STRING_SPLIT('numbers',',') )a where value='45'
答案 1 :(得分:1)
使用like
:
select * from table where concat(',', numbers, ',') like concat('%,', '45',',%')
因为您需要将列的值转换为如下形式:
,45,65,85,68,
,然后将like
应用于模式'%,45,%'
。
答案 2 :(得分:0)
您可以尝试使用类似运算符
select * from table where number like '%45%'
或者您可以对MySQL数据库使用find_in_set()
select * from table where find_in_set(45,number)>0
答案 3 :(得分:0)
使用类似运算符,且模式为'%45%':
select * from table where numbers like '%45%'
答案 4 :(得分:0)
对于Postgres,您可以使用:
{
"contexts": [
"shop"
],
"lang": "en",
"query": "Hello, How are you",
"parameters" : {"d": "s"},
"sessionId": "12345",
"timezone": "America/New_York",
"data" : {"paramerter_one": "parameter_one_pair"}
}