admin

检查包含json字符串的列是否具有特定值

sql

我有一个像这样的“工作”表:

----------------------------------------------
|job_id |name                    |skills     |
----------------------------------------------
|1      |Job 1                   |[1]        |
|2      |Job 2                   |[2,3]      |
|3      |Job 3                   |[4,5,6]    |
----------------------------------------------

“技能”列包含一个JSON数组。

我需要选择能够满足一项或多项技能的工作-像这样(但显然行不通):

SELECT * FROM jobs WHERE skills IN (1,4)

应该返回:

----------------------------------------------
|job_id |name                    |skills     |
----------------------------------------------
|1      |Job 1                   |[1]        |
|3      |Job 3                   |[4,5,6]    |
----------------------------------------------

阅读 180

收藏
2021-07-01

共1个答案

admin

你可以用 REGEXP

select * from jobs where skills REGEXP '[[:<:]]1[[:>:]]|[[:<:]]4[[:>:]]'

[[:<:]]在前后 附加[[:>:]]附加值,以匹配精确值并|匹配多个值。

> >>演示<<<

2021-07-01