0

以下のmysqlテーブルがあります。

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

where ticket (たとえば、最初の行) = 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 (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 に答える
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 に答える