有没有一种方法可以检查数组是否在SQLite中包含一个值?

时间:2020-08-29 21:23:56

标签: javascript sqlite

比方说,我们有这个SQLite表,其id = number和tags = text:

| id |标签|

| ---- | ------------------- |

| 1 | [“ love”,“ sadness”] |

| 2 | [“爱”] |

| 3 | [“幸福”,“快乐”] |

是否有一种方法仅返回其单元格tags包含“ love”的行, 就像MySQL中的以下命令:SQLite中的SELECT * from my_table WHERE JSON_CONTAINS(tags, '"love"')

我将它与node.js库sql.js一起使用

PS:IDK如何正确设置表的样式

2 个答案:

答案 0 :(得分:2)

我认为这应该有效:

SELECT * from my_table WHERE tags LIKE '%"love"%';

关键字LIKE可让您查询列中的部分信息,它在WHERE子句中使用,就像运算符=INBETWEEN

注意:

  • 百分号%通配符匹配零个或多个字符的任何序列。
  • 下划线_通配符匹配任何单个字符。

答案 1 :(得分:1)

如果您的sqlite版本的JSON1扩展名为:

SELECT *
FROM my_table
WHERE EXISTS (SELECT 1 FROM json_each(tags) WHERE value = 'love')
ORDER BY id;

将返回

id  tags               
--  -------------------
1   ["love","sadness"] 
2   ["love"]