mysql process_management表中payment_method字段的数据是通过","分割的数字如何查询可以查出payment_method字段等于某个数字
时间: 2024-10-19 18:04:01 浏览: 20
在MySQL中,如果你的`payment_method`字段是以逗号","分隔的数字列表,你可以使用`FIND_IN_SET()`函数或者子查询来查询特定数字是否存在。以下是两种方法:
1. 使用`FIND_IN_SET()`函数:
```sql
SELECT * FROM process_management
WHERE FIND_IN_SET('你的目标数字', REPLACE(payment_method, ',', '')) > 0;
```
这里,`REPLACE(payment_method, ',', '')`是为了去掉逗号,将字符串转换成单一值数组,再通过`FIND_IN_SET`查找目标数字是否在里面。
2. 使用子查询和IN关键字:
```sql
SELECT * FROM process_management
WHERE payment_method IN (
SELECT GROUP_CONCAT(DISTINCT UNNEST(SPLIT(payment_method, ',')))
FROM process_management
)
AND UNNEST(SPLIT(payment_method, ',')) = '你的目标数字';
```
这里,首先使用子查询将`payment_method`按逗号分割并合并为单行的数值列表,然后检查目标数字是否在合并后的列表中。
注意:上述方法假设你的数据库支持SPLIT()或UNNEST()等函数来分割字符串,例如在MySQL的MariaDB 10.5+版本中可用,如果不是,可能需要使用其他方法,比如正则表达式或者自定义函数(取决于你的数据库版本)。
阅读全文