首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >包含JSON变量的Mysql字段

包含JSON变量的Mysql字段
EN

Stack Overflow用户
提问于 2013-02-21 12:07:12
回答 3查看 1.4K关注 0票数 0

我有一个数据库,它有一个包含json字符串:["2","4","1","6"]["1"]的已归档的["1"]。我想为这个字段做一个过滤器,并考虑用以下方法查询它:

SELECT id FROM table_name WHERE myfield = '5' ->此返回不能回显id,因为["2","4","1","6"]没有值5。

SELECT id FROM table_name WHERE myfield = '1' ->返回可以回显id->,因为在归档myfield上的json字符串中的->值为1。

怎么才能修好呢?我做什么好?

我试过了,但这对我没用:

SELECT id FROM table_name WHERE myfield = '1'

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-21 12:08:52

例如,要检查id=1,您可以这样做

代码语言:javascript
复制
SELECT 1 as id
FROM table_name 
WHERE find_in_set('1', replace(myfield, '"', '')) > 0

您可以在代码中这样使用它。

代码语言:javascript
复制
$this->db->query("SELECT 1 as id 
                  FROM table_name 
                  WHERE find_in_set('1', replace(myfield, '\"', '')) > 0");
票数 1
EN

Stack Overflow用户

发布于 2015-12-18 07:31:38

如果搜索第一项或最后一项,@juergen给出的解决方案将无法工作。为此,还需要替换方括号。这对我来说很管用

代码语言:javascript
复制
SELECT * 
FROM `tbl_tasks_weekly` 
WHERE FIND_IN_SET('1', REPLACE( REPLACE( REPLACE(`myfield`,']','') ,  '[',''),'\"','')) 
票数 0
EN

Stack Overflow用户

发布于 2016-02-18 10:11:25

使用序列化和反序列化从数据库字段保存或检索数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15001889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档