CONCAT(SUBSTRING(m.USER_NAME,1,1),'***') AS `USER_NAME`

本文介绍了如何使用 SQL 中的 CONCAT 和 SUBSTRING 函数来处理字符串。通过具体示例展示了如何截取字符串的一部分并将其与其他部分组合起来,这对于保护敏感信息非常有用。

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

CONCAT(SUBSTRING(m.USER_NAME,1,2),'***') AS `USER_NAME`


substring截取 从左边第一位,往后截取2位


concat 连接符,

SELECT DISTINCT cr.id, IF( cr.cur_local IS NULL, cr.end_local, cr.cur_local ) AS end_local, cr.route_status, cra.car_info_id, si.user_name AS name, ci.car_number, ci.car_used, si.phone_number AS driver_phone, ci.use_type, IF( cr.cur_local_time IS NULL, cr.end_time, cr.cur_local_time ) AS end_time, cr.is_gps_hardware AS is_device FROM car_route cr LEFT JOIN car_route_apply cra ON cr.id = cra.route_id LEFT JOIN car_info ci ON ci.id = cra.car_info_id LEFT JOIN zt_sys_user_info si ON si.id = cr.user_id LEFT JOIN zt_sys_staff_info ss ON ss.user_id = cr.user_id WHERE ss.company_id = '5b14469fd5564f04a0a2baed31d8d7c6' AND cr.create_time IN (SELECT MAX(b.create_time) FROM car_route b LEFT JOIN zt_sys_staff_info c ON c.user_id = b.user_id WHERE b.user_id IS NOT NULL AND b.user_id <> '' AND b.route_status IN (2, 3, 4) AND b.route_type IN (1, 2) AND c.company_id = '5b14469fd5564f04a0a2baed31d8d7c6' AND ( ST_Distance( ST_GeomFromText( CONCAT( 'POINT(', SUBSTRING_INDEX(cur_local, ',', - 1), ' ', SUBSTRING_INDEX(cur_local, ',', 1), ')' ) ), ST_GeomFromText( CONCAT( 'POINT(', SUBSTRING_INDEX( '39.915,116.404', ',', - 1 ), ' ', SUBSTRING_INDEX( '39.915,116.404', ',', 1 ), ')' ) ) ) < 37417 OR ST_Distance( ST_GeomFromText( CONCAT( 'POINT(', SUBSTRING_INDEX(end_local, ',', - 1), ' ', SUBSTRING_INDEX(end_local, ',', 1), ')' ) ), ST_GeomFromText( CONCAT( 'POINT(', SUBSTRING_INDEX( '39.915,116.404', ',', - 1 ), ' ', SUBSTRING_INDEX( '39.915,116.404', ',', 1 ), ')' ) ) ) < 37417 ) GROUP BY b.user_id) 帮我优化这段sql
07-15
SELECT ANY_VALUE(t5.categoryName) AS categoryName, t5.model, t1.standard_asset_id, t1.management_dept_id, ANY_VALUE(t1.user_dept_id) AS user_dept_id, ANY_VALUE(t1.user_id) AS user_id, ANY_VALUE(t1.provider_flag) AS provider_flag, ROUND(t1.price, 2) AS price, ANY_VALUE(t1.position_id) AS position_id, SUM(IFNULL(t2.account_num,0)) AS num, SUM(IFNULL(t1.num,0)) AS amount, ANY_VALUE(t2.remarks) AS remarks, ANY_VALUE(t1.purchase_date) AS purchase_date, SUM(IFNULL(t2.first_inventory_num,0)) AS inventory_num, SUM(IFNULL(t2.second_inventory_num,0)) AS secondInventoryNum, SUM((IFNULL(t2.account_num,0) - IFNULL(t2.first_inventory_num,0))) AS firstInventoryWinAndLossNum, SUM((IFNULL(t2.account_num,0) - IFNULL(t2.second_inventory_num,0))) AS secondInventoryWinAndLossNum, SUM(ROUND(((IFNULL(t2.account_num,0) - IFNULL(t2.first_inventory_num,0)) * price), 2)) AS firstInventoryAmount, SUM(ROUND(((IFNULL(t2.account_num,0) - IFNULL(t2.second_inventory_num,0)) * price), 2)) AS secondInventoryAmount FROM asset_escrow_ledger t1 LEFT JOIN asset_escrow_company_inventory_ledger t2 ON t1.id = t2.ledger_id LEFT JOIN ( SELECT t1.id, t1.NAME, t1.model, t1.unit, t1.category_id, t1.manufacturer_id, t2.NAME AS childCategoryName, t3.NAME AS categoryName, t4.NAME AS parentCategoryName FROM asset_standard_asset t1 LEFT JOIN asset_category t2 ON t1.category_id = t2.id LEFT JOIN asset_category t3 ON t2.parent_id = t3.id LEFT JOIN asset_category t4 ON t3.parent_id = t4.id WHERE t1.data_type = ‘escrow’) t5 ON t1.standard_asset_id = t5.id WHERE inventory_id = 7 AND ledger_id IN (26580, 26596, 27189, 33805, 47091, 47151, 47152, 47312, 47313, 47327, 47917, 47938, 48103, 48104, 48105, 50312, 50320, 50323, 50324, 50325, 50784, 50785, 50809, 50810, 50813, 60377, 60414, 60415, 60569, 61159, 61160, 61240, 61242, 61243, 61244, 61245, 61246, 61264, 61266, 61267, 61268, 61270, 61272, 61273, 61274, 61275, 61276, 61278, 61280, 61282, 61283, 61284, 61286, 61287, 61290, 61292, 61293, 61300, 61301, 61302, 61304, 61305, 61306, 61307, 61312, 61313, 61314, 61320, 61321, 61322, 61324, 61325, 61326, 61327, 61328, 61330, 61331, 61332, 61333, 61348, 61349, 61350, 61351, 61353, 61355, 61356, 61357, 61358, 61361, 61362, 61363, 61364, 61365, 61366, 61367, 61368, 62991, 62992, 62994, 63770, 63872, 63885, 63892, 64120, 64121, 64122, 64126, 64128, 64129, 64130, 64149, 64161, 64163, 64164, 64165, 64199, 64200, 64212, 64213, 64214, 64219, 64245, 64249, 64250, 64252, 64255, 64262, 64286, 64312, 64313, 64314, 64315, 64316, 64317, 64318, 64319, 64320, 64321, 64322, 64323, 64324, 64325, 64326, 64327, 64328, 64329, 64330, 64331, 64333, 64340, 64345, 64416, 64426, 64427, 64440, 64453, 64460, 64463, 64469, 64591, 64592, 64593, 64594, 64595, 64596, 64597, 64699, 79854, 80087, 80176, 80644, 80730, 80789, 80792, 80803, 81099) GROUP BY t1.standard_asset_id, t5.model, t1.management_dept_id 这是我的SQL语句,目前报错原因是因为sql_mode=only_full_group_by,我的MYSQL版本是5.7,现在我要在能够获取SELECT列表中所有内容的情况下解决这个问题,但是我希望我的price要是分组情况下拿去的是每一组t1.purchase_date最晚的时间
最新发布
08-08
"message": "\r\n### Error querying database. Cause: java.sql.SQLException: Row 304 was cut by GROUP_CONCAT()\r\n### The error may exist in io/dataease/ext/ExtVAuthModelMapper.xml\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT v_auth_model.id, v_auth_model.name, v_auth_model.label, v_auth_model.pid, v_auth_model.node_type, v_auth_model.model_type, v_auth_model.model_inner_type, v_auth_model.auth_type, v_auth_model.create_by, v_auth_model.level, v_auth_model.mode, v_auth_model.data_source_id, authInfo.PRIVILEGES AS `privileges` FROM ( SELECT GET_V_AUTH_MODEL_ID_P_USE ( ?, ? ) cids ) t, v_auth_model LEFT JOIN ( SELECT auth_source, group_concat( DISTINCT sys_auth_detail.privilege_extend ) AS `privileges` FROM ( `sys_auth` LEFT JOIN `sys_auth_detail` ON (( `sys_auth`.`id` = `sys_auth_detail`.`auth_id` ))) WHERE sys_auth_detail.privilege_value = 1 AND sys_auth.auth_source_type = ? AND ( ( sys_auth.auth_target_type = 'dept' AND sys_auth.auth_target IN ( SELECT dept_id FROM sys_user WHERE user_id = ? ) ) OR ( sys_auth.auth_target_type = 'user' AND sys_auth.auth_target = ? ) OR ( sys_auth.auth_target_type = 'role' AND sys_auth.auth_target IN ( SELECT role_id FROM sys_users_roles WHERE user_id = ? ) ) ) GROUP BY `sys_auth`.`auth_source` ) authInfo ON v_auth_model.id = authInfo.auth_source WHERE FIND_IN_SET( v_auth_model.id, cids ) and v_auth_model.model_type = ? ORDER BY v_auth_model.node_type desc, CONVERT(v_auth_model.label using gbk) asc\r\n### Cause: java.sql.SQLException: Row 304 was cut by GROUP_CONCAT()\n; uncategorized SQLException; SQL state [HY000]; error code [1260]; Row 304 was cut by GROUP_CONCAT(); nested exception is java.sql.SQLException: Row 304 was cut by GROUP_CONCAT()",
03-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值