Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL选择id在`列中的位置`_Sql_Csv - Fatal编程技术网

SQL选择id在`列中的位置`

SQL选择id在`列中的位置`,sql,csv,Sql,Csv,我有一个列,它有多个用逗号分隔的数字。行的示例: `numbers`: 1,2,6,66,4,9 我想进行一个查询,仅当数字6(例如)在列numbers中时,才会选择该行 我不能像那样使用,因为如果有66,它也会起作用。你可以像那样使用。在列表的开头和结尾连接字段分隔符,然后像使用一样使用。以下是SQL Server sytnax: where ','+numbers+',' like '%,'+'6'+',%' SQL Server使用+进行字符串连接。其他数据库使用|或concat()

我有一个列,它有多个用逗号分隔的数字。行的示例:

`numbers`:
 1,2,6,66,4,9
我想进行一个查询,仅当数字
6
(例如)在列
numbers
中时,才会选择该行


我不能像那样使用
,因为如果有
66
,它也会起作用。

你可以像
那样使用
。在列表的开头和结尾连接字段分隔符,然后像使用
一样使用
。以下是SQL Server sytnax:

where ','+numbers+',' like '%,'+'6'+',%'

SQL Server使用
+
进行字符串连接。其他数据库使用
|
concat()
函数。

您应该将数据库更改为具有将数字与当前表的行连接起来的新表。因此,如果您的行如下所示:

id   numbers
 1   1,2,6,66,4,9
您将拥有一个新表,该表将这些值连接在一起,如下所示

row_id   number
1        1
1        2
1        6
1        66
1        4
1        9

然后,您可以在“数字”列中搜索数字6,并获取行id

您使用的是哪种RDMB?开始时不应存储逗号分隔的值with@a_horse_with_no_name我知道。这是我为修正语法而编辑的一个老问题。我很可能需要规范化数据结构……在原始字符串中添加逗号既有效又简洁。我很喜欢。