2

假设我们有这个 id=number 和 tags=text 的 SQLite 表:

| id   | tags                |  
| ---- | ------------------- |   
| 1    | ["love","sadness"]  |    
| 2    | ["love"]            |   
| 3    | ["happiness","joy"] |

有没有办法只返回它们的单元格tags包含“love”的行,例如 MySQL 中的这个命令:SELECT * from my_table WHERE JSON_CONTAINS(tags, '"love"')在 SQLite 中。

我将它与带有sql.jsnode.js的库一起使用

4

2 回答 2

2

如果您的 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"]           
于 2020-08-30T04:30:01.623 回答
1

我相信这应该有效:

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

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

笔记:

  • 百分号 % 通配符匹配零个或多个字符的任何序列。
  • 下划线 _ 通配符匹配任何单个字符。
于 2020-08-29T22:09:36.107 回答