iw.worker_work like concat ('%,', '0,2,26' ,',%') 将like改为in
时间: 2023-08-06 12:13:40 浏览: 29
将 `like` 改为 `in`,可以这样写:
```sql
iw.worker_work in ('0', '2', '26')
```
其中,`in`表示在给定的值列表中匹配,只需要将要匹配的值用逗号隔开,放在括号中即可。
相关问题
iw.worker_work like concat ('%,', 0,2,26 ,',%') 将like改为in
将 `like` 改为 `in` 后的 SQL 语句如下:
```
iw.worker_work in (',0,2,26,')
```
这将匹配 `iw.worker_work` 字段中包含 `,0,2,26,` 的记录。注意,前后加上逗号是为了避免匹配到类似于 `10,20,260` 这样的字段值。
SELECT iw.worker_work AS workers FROM ineb_worker iw LEFT JOIN sys_user su ON su.user_id = iw.user_id WHERE 1 = 1 AND su.is_can_account = 0 AND iw.worker_work in (26) GROUP BY iw.user_id 有数据但是查不到
可能是因为您使用的 LEFT JOIN 操作符,如果 ine_worker 表中有一些记录没有对应的 sys_user 表中的 user_id,那么这些记录在 JOIN 后会被过滤掉,因此您可能会找不到您想要的数据。您可以尝试使用 INNER JOIN 操作符,或者添加一个条件来包括没有对应记录的 ine_worker 数据行,例如:
```
SELECT iw.worker_work AS workers
FROM ineb_worker iw
LEFT JOIN sys_user su ON su.user_id = iw.user_id
WHERE 1 = 1
AND (su.is_can_account = 0 OR su.is_can_account IS NULL)
AND iw.worker_work IN (26)
GROUP BY iw.user_id;
```
这里我们添加了一个条件 `(su.is_can_account = 0 OR su.is_can_account IS NULL)`,这样就能够把没有对应记录的 ine_worker 数据行也包含进来。