mysql 逗号(,)分隔的值的简单应用

博客指出在使用SQL语句时,用数字匹配结果只能匹配第一个数字,会将整个字符串当作字符串转成数字,逗号后面的自动忽略;用字符串匹配则必须完整匹配,反映了SQL匹配结果存在的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

表:
在这里插入图片描述
sql语句

select *, max(company_id)  from b2f_order_ordrtype_constructtype tmp where company_id in (0, 1) and order_type = 'mea-inst'  and take_type = 2
and '090' in (order_status)

发现不行的,用数字去匹配结果只能匹配第一个数字,因为会把整个字符串当作字符串转成数字 ,号后面的自动忽略。用字符串去匹配,必须完整匹配

如果您的目标是在 MySQL 中使用逗号分隔,您有几种选项。以下是其中几种常见的方法: 1. 使用 FIND_IN_SET 函数:MySQL 提供了 FIND_IN_SET 函数,它可以在逗号分隔的字符串中搜索一个。例如,假设您有一个名为 'column_name' 的列,其中包含逗号分隔,并且您想要查询包含特定的行,可以使用以下查询: ```sql SELECT * FROM table_name WHERE FIND_IN_SET('value', column_name) > 0; ``` 2. 使用 REGEXP 运算符:您还可以使用正则表达式运算符来搜索逗号分隔。例如,假设您有一个名为 'column_name' 的列,其中包含逗号分隔,并且您想要查询包含特定的行,可以使用以下查询: ```sql SELECT * FROM table_name WHERE column_name REGEXP '[[:<:]]value[[:>:]]'; ``` 这里 `[[:<:]]` 和 `[[:>:]]` 是用于匹配单词边界的正则表达式元字符。 3. 使用 LIKE 运算符:如果您知道要搜索的逗号分隔的字符串中出现在特定位置,可以使用 LIKE 运算符。例如,假设您有一个名为 'column_name' 的列,其中包含逗号分隔,并且您想要查询包含特定的行,可以使用以下查询: ```sql SELECT * FROM table_name WHERE CONCAT(',', column_name, ',') LIKE '%,value,%'; ``` 在此查询中,我们在的前面和后面添加了逗号,以确保只匹配完整的,并避免部分匹配。 请注意,使用逗号分隔可能不是最佳的数据库设计选择。如果可能的话,考虑将这些拆分为单独的行或使用关联表来存储更规范化的数据。这样可以更轻松地对数据进行查询和处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值