我正在使用Mysql触发器在数据库上执行某些操作。在进行任何操作之前,我想检查配置表中的json_encode字符串中是否存在一个值,然后继续运行触发器。我的配置表由php脚本处理,如下所示:
-------------------------------------------
| config_name | config_value |
-------------------------------------------
| target_id | ["1","16","18","22","37"] |
-------------------------------------------
Run Code Online (Sandbox Code Playgroud)
在php中,我们可以使用:if in_array(json_decode(config_value))和...
但是我的问题是在Mysql语法中,它不支持in_array和json_decode
如何检查Mysql触发器中“ config value”中是否存在我的值?
如果要将JSON存储在mysql中,请确保升级到mysql 5.7,然后才能使用可用的JSON函数范围。在您的特定情况下,您可以
SELECT * FROM my_table WHERE JSON_SEARCH(config_value,"one", "17") IS NOT NULL;
Run Code Online (Sandbox Code Playgroud)
您的数据有问题。如果发现您始终在搜索JSON字段,那实际上意味着您的表应该被规范化。
更新:第2节,标题更改为@Sammitch建议
| 归档时间: |
|
| 查看次数: |
2873 次 |
| 最近记录: |