0

我在下面有一个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
...

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

4

4 回答 4

1

试试这个:

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

小提琴演示

于 2012-10-09T09:52:42.353 回答
0

试试这个 :

           SELECT CONCAT_WS(";", id, user_id, LEFT(ticket,6)) FROM `signals` 
于 2012-10-09T09:47:20.337 回答
0

试试这个:

SELECT CONCAT_WS(";", id, user_id, left(ticket,length(ticket)-length(user_id)))
FROM `signals` 
于 2012-10-09T09:51:00.747 回答
0

您可以使用此查询 -

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

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

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

于 2012-10-09T10:00:26.150 回答