`consignee_address` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '收件人地址',这句代码有误么
时间: 2023-10-21 16:36:18 浏览: 158
这句代码没有明显的语法错误,但是该语句中使用了MySQL 8.0版本新增的utf8mb4_0900_ai_ci字符集,该字符集支持了Unicode 9.0版本的规范。如果你的MySQL版本低于8.0,那么可能会报错。此外,如果你的应用场景中不需要支持Emoji等特殊字符,使用utf8mb4_general_ci字符集即可。
相关问题
select substr(a.create_time,1,10) as 'create_time', a.tracking_id, a.purchase_order_number, b.code_description, c.port_code, c.return_desc, case when a.kyc_flag = '1' then 'Global store' else 'Core export' end as 'customer',a.service_level,'ECMS' as 'clearance_company', (case when a.reason_code = '18' then concat(b.code_description,'/',ifnull(c.port_code,'')) when a.reason_code = '51' then concat(b.code_description,'/',ifnull(c.return_desc,'')) else b.code_description end ) as 'reason_description', a.accumulated_days, a.consignee_name, a.consignee_phone from temp_daily_report_amazon_abnormal_hawb a join dw_code_info b on a.reason_code = b.code_id and b.code_flag = 'daily_report_amazon_abnormal' left join ecms_dws.dws_hawb_base c on a.tracking_id = c.tracking_id where a.create_time = UTC_DATE() and (a.accumulated_days >='2' or a.accumulated_days is null) having 1 order by a.accumulated_days desc,b.priority
这是一个 SQL 查询语句,用于从表 temp_daily_report_amazon_abnormal_hawb 中获取一些列的数据。以下是查询中使用的每个列的说明:
- `substr(a.create_time,1,10)`:将 a.create_time 字段的前10个字符作为 create_time 列的值。
- `a.tracking_id`:tracking_id 列的值。
- `a.purchase_order_number`:purchase_order_number 列的值。
- `b.code_description`:code_description 列的值,来自 dw_code_info 表。
- `c.port_code`:port_code 列的值,来自 ecms_dws.dws_hawb_base 表。
- `c.return_desc`:return_desc 列的值,来自 ecms_dws.dws_hawb_base 表。
- `case when a.kyc_flag = '1' then 'Global store' else 'Core export' end`:根据 a.kyc_flag 的值,决定 customer 列的值。
- `a.service_level`:service_level 列的值。
- `'ECMS' as 'clearance_company'`:将 clearance_company 列的值设置为字符串 'ECMS'。
- `(case when a.reason_code = '18' then concat(b.code_description,'/',ifnull(c.port_code,'')) when a.reason_code = '51' then concat(b.code_description,'/',ifnull(c.return_desc,'')) else b.code_description end )`:根据 a.reason_code 的值,决定 reason_description 列的值。如果 reason_code 是 '18',则将 b.code_description 和 c.port_code 进行拼接;如果 reason_code 是 '51',则将 b.code_description 和 c.return_desc 进行拼接;否则,reason_description 列的值为 b.code_description。
- `a.accumulated_days`:accumulated_days 列的值。
- `a.consignee_name`:consignee_name 列的值。
- `a.consignee_phone`:consignee_phone 列的值。
查询还包括以下条件:
- `a.create_time = UTC_DATE()`:筛选符合当前日期(UTC)的记录。
- `(a.accumulated_days >='2' or a.accumulated_days is null)`:筛选 accumulated_days 大于等于 2 或为空的记录。
最后,结果按照 a.accumulated_days 降序和 b.priority 升序进行排序。
<mapper namespace="com.cskaoyan.mapper.MarketOrderMapper"> <resultMap id="BaseResultMap" type="com.cskaoyan.bean.MarketOrder"> <id column="id" jdbcType="INTEGER" property="id" /> <result column="user_id" jdbcType="INTEGER" property="userId" /> <result column="order_sn" jdbcType="VARCHAR" property="orderSn" /> <result column="order_status" jdbcType="SMALLINT" property="orderStatus" /> <result column="aftersale_status" jdbcType="SMALLINT" property="aftersaleStatus" /> <result column="consignee" jdbcType="VARCHAR" property="consignee" /> <result column="mobile" jdbcType="VARCHAR" property="mobile" /> <result column="address" jdbcType="VARCHAR" property="address" /> <result column="message" jdbcType="VARCHAR" property="message" /> <result column="goods_price" jdbcType="DECIMAL" property="goodsPrice" /> <result column="freight_price" jdbcType="DECIMAL" property="freightPrice" /> <result column="coupon_price" jdbcType="DECIMAL" property="couponPrice" /> <result column="integral_price" jdbcType="DECIMAL" property="integralPrice" /> <result column="groupon_price" jdbcType="DECIMAL" property="grouponPrice" /> <result column="order_price" jdbcType="DECIMAL" property="orderPrice" /> <result column="actual_price" jdbcType="DECIMAL" property="actualPrice" /> <result column="pay_id" jdbcType="VARCHAR" property="payId" /> <result column="pay_time" jdbcType="TIMESTAMP" property="payTime" /> <result column="ship_sn" jdbcType="VARCHAR" property="shipSn" /> <result column="ship_channel" jdbcType="VARCHAR" property="shipChannel" /> <result column="ship_time" jdbcType="TIMESTAMP" property="shipTime" /> <result column="refund_amount" jdbcType="DECIMAL" property="refundAmount" /> <result column="refund_type" jdbcType="VARCHAR" property="refundType" /> <result column="refund_content" jdbcType="VARCHAR" property="refundContent" /> <result column="refund_time" jdbcType="TIMESTAMP" property="refundTime" /> <result column="confirm_time" jdbcType="TIMESTAMP" property="confirmTime" /> <result column="comments" jdbcType="SMALLINT" property="comments" /> <result column="end_time" jdbcType="TIMESTAMP" property="endTime" /> <result column="add_time" jdbcType="TIMESTAMP" property="addTime" /> <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" /> <result column="deleted" jdbcType="BIT" property="deleted" /> </resultMap>
这段代码是一个MyBatis的XML文件中的mapper标签,用于配置与MarketOrder相关的SQL语句和映射关系。其中,resultMap标签用于定义查询结果与Java对象之间的映射关系。具体来说,定义了MarketOrder类的各个属性与查询结果中对应字段的映射关系。例如,id属性对应查询结果中的id字段,userId属性对应查询结果中的user_id字段,以此类推。
在实际的SQL查询中,可以通过引用该resultMap来获取查询结果并将其转换为对应的Java对象,例如:
```
<select id="getOrderById" resultMap="BaseResultMap">
SELECT * FROM market_order WHERE id = #{id}
</select>
```
这里的getOrderById是一个SQL查询语句的ID,resultMap="BaseResultMap"表示将查询结果使用上面定义的BaseResultMap映射到MarketOrder对象中。
阅读全文