mysql关联多个id_mysql 一个字段存多个id,关联查询

本文介绍了如何在MySQL中处理一个字段存储多个ID的情况,特别是在订单表中,通过`find_in_set()`函数成功实现了关联查询优惠券使用情况。示例代码展示了如何查询优惠券使用详情,包括其生成类型、状态、订单信息等,并提供了`find_in_set()`函数的解释和用途。
摘要由CSDN通过智能技术生成

mysql订单表中一个字段对应多个优惠卷id,用','隔开。html

财务须要优惠卷使用状况mysql

刚开始用优惠卷id(长度固定,不会出现特殊状况) like 订单表关联id字段 查询,使用'||'拼接'%'。  sql

发现不管是在优惠卷id或订单管理字段加'%'都不能打到要求,最后使用find_in_set()方法 成功实现。spa

代码以下:code

select cou.cp_id as '优惠卷id'htm

,cou.cp_no as '卷号'get

,cast(case cou.generate_type  when 0 then '生成'  when 1 then '发放' else cou.generate_type string

end AS char(20)) as '生成类型'it

,cast(case cou.state when 0 then '待领用' when 1 then '未使用' when 2 then '已使用' when 3 then '已过时' when 4 then '已失效' else cou.state end as char(20)) as '状态'io

,cast(case cou.is_gift when 0 then '否' when 1 then '是' else '' end as char(20))as '是否礼包领取'

,cast(case cou.cp_type when 1 then '现金券' when 2 then '折扣券' when 3 t

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 MySQL 多个表数据字段关联抽样对比正确性的 shell 脚本示例: ```bash #!/bin/bash # 数据库信息 database="test_db" host="localhost" user="root" password="password" # 抽样数据量 sample_size=1000 # 表1字段值抽样 table1_field="id" table1_sample=$(mysql -h $host -u $user -p$password -D $database -se "SELECT $table1_field FROM table1 ORDER BY RAND() LIMIT $sample_size") # 表2字段值抽样 table2_field="table1_id" table2_sample=$(mysql -h $host -u $user -p$password -D $database -se "SELECT $table2_field FROM table2 WHERE $table2_field IN ($table1_sample) ORDER BY RAND() LIMIT $sample_size") # 表3字段值抽样 table3_field="table2_id" table3_sample=$(mysql -h $host -u $user -p$password -D $database -se "SELECT $table3_field FROM table3 WHERE $table3_field IN ($table2_sample) ORDER BY RAND() LIMIT $sample_size") # 对比抽样数据 if [ "$table1_sample" == "$table2_sample" ] && [ "$table2_sample" == "$table3_sample" ]; then echo "数据关联正确" exit 0 else echo "数据关联错误" exit 1 fi ``` 这个脚本会先从表1中抽取指定字段的数据,然后根据这些数据在表2中抽取指定字段的数据,最后根据这些数据在表3中抽取指定字段的数据。抽样数据量可以根据需要修改。然后,对比这些抽样数据是否一致。如果抽样数据一致,则输出“数据关联正确”并退出脚本,返回值为 0;否则输出“数据关联错误”并退出脚本,返回值为 1。您需要修改脚本中的数据库信息、表名和字段名,以适应您的实际情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值