Select 字段中有逗号?
Select with comma in field?
我想在 mysql 上 select 条件 'comma in strings'。
我有 table product
,它有字段:'id, name, rack'
.
我想搜索我在特定货架上有什么产品,因此用户将输入一些带逗号的字符串。所以我有一个字符串变量,如下所示:
vrack='d1,a2,x3,a1'
或有时 vrack='a1' or vrack='b1,c3'
等
如何在mysql上select这个?
select * from product where rack=' + vrack
编辑: 添加了 table 屏幕截图
所以如果我有 vrack:='P1,K2,G1'
那么输出应该显示 Ball,Pencil,Eraser
试试这个:-
select * from product where rack in ('A1','B2');
创建详细信息table。您可以通过外键链接 table Rack 和 Product 。不要在数据库中存储逗号分隔值。例如 PostgreSQL 有这种情况的数组数据类型,但那是 PostgreSQL,而不是 MySQL,即使在那里你也应该考虑你是否真的需要它。
但是,如果您需要将多于一位的信息存储到单个字段中,并且不超过 64 个不同的位,您可以制作一个整数字段类型并构建一个位掩码(但这似乎并不是你的情况)。
我想在 mysql 上 select 条件 'comma in strings'。
我有 table product
,它有字段:'id, name, rack'
.
我想搜索我在特定货架上有什么产品,因此用户将输入一些带逗号的字符串。所以我有一个字符串变量,如下所示:
vrack='d1,a2,x3,a1'
或有时 vrack='a1' or vrack='b1,c3'
等
如何在mysql上select这个?
select * from product where rack=' + vrack
编辑: 添加了 table 屏幕截图
所以如果我有 vrack:='P1,K2,G1'
那么输出应该显示 Ball,Pencil,Eraser
试试这个:-
select * from product where rack in ('A1','B2');
创建详细信息table。您可以通过外键链接 table Rack 和 Product 。不要在数据库中存储逗号分隔值。例如 PostgreSQL 有这种情况的数组数据类型,但那是 PostgreSQL,而不是 MySQL,即使在那里你也应该考虑你是否真的需要它。
但是,如果您需要将多于一位的信息存储到单个字段中,并且不超过 64 个不同的位,您可以制作一个整数字段类型并构建一个位掩码(但这似乎并不是你的情况)。