【问题标题】:MYSQL concat request and string substractionMYSQL concat 请求和字符串减法
【发布时间】:2012-09-29 14:44:43
【问题描述】:

下面有一个mysql表:

id   user_id   ticket 
1    39        56478939
2    51        42234951
3    40        56478940
4    52        67284952

其中票证(例如第一行)= 564789 + 39 (user_id) 我的请求如下所示:

SELECT CONCAT_WS(";", id, user_id, ticket) FROM `signals` 

我会得到:

1;39;56478939
2;51;42234951
...

如何使用 MYSQL 请求获取此类数据(在票证末尾从票证 user_id 中删除):

1;39;564789
2;51;422349
...

请求应该足够快: 非常感谢!

【问题讨论】:

    标签: mysql string request concat


    【解决方案1】:

    试试这个:

               SELECT CONCAT_WS(";", id, user_id, LEFT(ticket,6)) FROM `signals` 
    

    【讨论】:

    • @user889349 我假设您的票长为 6。如果它是动态的,请考虑乔的回答。
    【解决方案2】:

    试试这个:

    SELECT CONCAT_WS(";", id, user_id, left(ticket,length(ticket)-length(user_id)))
    FROM `signals` 
    

    【讨论】:

      【解决方案3】:

      试试这个:

      SELECT CONCAT_WS(";", id, user_id, LEFT(ticket,length(ticket)-length(user_id))) from table1;
      

      FIDDLE DEMO

      【讨论】:

      • 我们不知道ticket长度或user_id长度
      【解决方案4】:

      你可以使用这个查询 -

      SELECT (ticket - user_id) DIV
        CASE
          WHEN user_id < 10 THEN 10
          WHEN user_id < 100 THEN 100
          ELSE 1000 END
      FROM signals;
      

      如果需要,添加更多 WHEN 案例。

      然后将其应用于您的查询。

      【讨论】:

        猜你喜欢
        • 2014-11-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-26
        • 2021-12-07
        • 2023-03-30
        相关资源
        最近更新 更多