我在mysql数据库的一列中有如下记录:
ID Tax
1 GST + PST + ABC
2 PST + GST + ABC
3 XYZ
4 PST + ABC + GST
它们以varchar形式存储在db中。通过我的代码,我需要从数据库中获取符合条件的记录,如tax=“gst+pst+”
由于查询,目前我只获得第一条记录:
Select * from table where taxes = "GST + PST + ABC";
但我想从数据库中获取所有记录,其中上述3个名称(gst、pst、)将出现,而不考虑它们的位置。
所以,如果我申请上述条件,我需要记录:
GST + PST + ABC
PST + GST + ABC
PST + ABC + GST
我正在使用mysql数据库,请让我知道有任何功能,我可以通过我的条件实现上述结果
3条答案
按热度按时间prdp8dxp1#
我建议这样做:
如果你想要这三个代码,这个测试长度。您还可以测试
+
:或者如果你想要那些代码而不是其他的,那么就把那些条件排除在外。
这假设名称不重叠(因此没有称为“gs”或“st”的税)。如果可能的话:
mklgxw1f2#
我会用
话虽如此,这听起来像是数据模型不够规范化的情况。也就是说,您应该将每个税类型存储在一个单独的行中,这将使mysql操作更加容易(就像在本例中一样)。以现有的形式存储数据不是一个好的做法。我会尝试这样存储它:
可能根本不需要id sub。
vlju58qv3#
你可以用
OR
```SELECT * FROM TABLE WHERE TAXES = "GST + PST + ABC"
OR TAXES = "GST + ABC + PST"
OR TAXES = "PST + GST + ABC"
OR TAXES = "PST + ABC + GST"
OR TAXES = "ABC + GST + PST"
OR TAXES = "ABC + PST + ABC"