按照in列表的顺序查询

  1. select id, mch_id, name, pic, original_price, price, sale
  2. from pms_product
  3. where
  4. company_id = #{companyId} and delete_status = 0 and publish_status = 1
  5. and id in(1,5,6,7,3)
  6. order by field(id,1,5,6,7,3)

根据经纬度计算直线距离

已知用户经纬度(116.3424590000, 40.0497810000),计算与目标店铺经纬度的直线距离。

  1. -- 查询每个店铺的距离
  2. SELECT
  3. ROUND(
  4. 6378.137 * 2 * ASIN(
  5. SQRT(
  6. POW( SIN( ( 40.0497810000 * PI() / 180 - latitude * PI() / 180 ) / 2 ), 2 ) +
  7. COS( 40.0497810000 * PI() / 180 ) * COS( latitude * PI() / 180 )
  8. * POW( SIN( ( 116.3424590000 * PI() / 180 - longitude * PI() / 180 ) / 2 ), 2 )
  9. )
  10. ) * 1000
  11. ) distance
  12. FROM mall_store_info msi
  13. ORDER BY distance

截取时间段并转化为分钟

时间格式:小时:分钟(00:00,03:30,06:50)

  1. -- 从要截取的下标位置往后截两位,小时位置截取之后需要 * 60,再加上分钟,就是总的分钟数
  2. SELECT
  3. SUBSTRING( business_start_time, 1, 2 ) * 60 + SUBSTRING( business_start_time, 4, 2 ) start_time1,
  4. SUBSTRING( business_start_time, 7, 2 ) * 60 + SUBSTRING( business_start_time, 10, 2 ) start_time2,
  5. SUBSTRING( business_start_time, 13, 2 ) * 60 + SUBSTRING( business_start_time, 16, 2 ) start_time3,
  6. SUBSTRING( business_end_time, 1, 2 ) * 60 + SUBSTRING( business_end_time, 4, 2 ) end_time1,
  7. SUBSTRING( business_end_time, 7, 2 ) * 60 + SUBSTRING( business_end_time, 10, 2 ) end_time2,
  8. SUBSTRING( business_end_time, 13, 2 ) * 60 + SUBSTRING( business_end_time, 16, 2 ) end_time3
  9. FROM mall_store_info

查询某个数据库中某个表的所有列名

转载:https://www.cnblogs.com/ibigboy/p/11139206.html

使用时只需要替换 db_name( 数据库名 )和 tb_name ( 表名 )即可

  1. SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'db_name' AND TABLE_NAME = 'tb_name';

查询某个数据库中某个表的所有列名,并用逗号连接

转载:https://www.cnblogs.com/ibigboy/p/11139206.html

使用时只需要替换 db_name( 数据库名 )和 tb_name ( 表名 )即可

  1. SELECT GROUP_CONCAT(COLUMN_NAME SEPARATOR ",") FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'db_name' AND TABLE_NAME = 'tb_name';

MySQL CONCAT 长度限制

转载:https://blog.csdn.net/weixin_36488250/article/details/113168929

修改 group_concat_max_len 大小

修改group_concat_max_len大小有两种方法:

1、临时修改

  1. SET GLOBAL group_concat_max_len=102400;

设置为 -1 则表示最大值。使用 SET 进行设置后客户端重新连接即可,缺点是 MySQL 服务器重启后会恢复为默认设置值。

2、永久修改

修改 MySQL 配置文件 my.ini ,默认情况下是没有 group_concat_max_len 项的,在配置文件中添加

  1. group_concat_max_len = -1

重启 MySQL 服务器即可