我正在将node.js和squel.js用于SQL数据库。 我正在将字符串数组存储到一个表字段中。
让我们说,我的表名就像XYZ
。
我的表格数据就像
id col2
1 '["a", "b", "x", "y"]'
2 '["x", "y", "q"]'
3 '["q", "e"]'
4 '["p", "q"]'
现在我想知道如何进行搜索查询 如果我想如何查询是否要获取类似记录
["x", "y"]
之类的所有记录。在这种情况下,我希望得到结果ID 1和2。["q"]
之类的所有记录。在这种情况下,我希望得到结果2和4。请在这里帮助我,我被困在这里。预先感谢。
答案 0 :(得分:0)
如果我正确理解了您的问题,只需使用LIKE
即可
对于第一个要求,您可以使用
SELECT * FROM yourtable WHERE col2 LIKE `%"x"%` AND col2 LIKE `%"y"%`
OR
SELECT * FROM yourtable WHERE col2 LIKE `%"x","y"%`
由于我不知道确切的格式,是否只是检查匹配x
和y
?还是完全匹配"x","y"
?
对于第二个要求,您可以使用
SELECT * FROM yourtable WHERE col2 LIKE `%"q"%`
答案 1 :(得分:0)
col2
可以是JSON
列,因此您可以执行以下操作:
SELECT * FROM XYZ WHERE JSON_CONTAINS(col2, JSON_ARRAY('x', 'y'));
SELECT * FROM XYZ WHERE JSON_CONTAINS(col2, JSON_ARRAY('q'));
第二个查询将返回行2
,3
和4
,但是我想您的期望可能被错误地陈述,因为'q'
存在于{{1}中}所有这些数组。