2016-11-13 7 views
0

私は6列のMySQLテーブルを持っています。列の中には、改行とスペースを持つ長いJSON文字列が含まれているものがあります。 SELECTステートメントでテーブルの内容をリストすると、出力が非常に乱雑です。MySQL:SELECT出力をより読みやすくするためにセルの内容をトリミングする方法

各列の出力を意味のある最初の文字に限定して、セルの内容に関係なく各行が1行で表示されるようにするコマンドがありますか(デフォルト設定は変更できますか)。次のようなものがあります。

+---------------------------+-------------------------+---------+-----------+--------------+----------+ 
| jsondata     | column2     | column3 | column4 | column5  | column6 | 
+---------------------------+-------------------------+---------+-----------+--------------+----------+ 
| { "Text":[{"user_id":"3","| ABCDEFABCDEFABCDEFABC |  3 | ABCABCA | txt   | { "email"| 
+---------------------------+-------------------------+---------+-----------+--------------+----------+ 

答えて

0

私はあなたが永続的にDBに変更できる設定については知らないが、あなたはそれを説明するように、このようなものは、出力をフォーマットする必要があります。

SELECT column2, column3, column4, column5, REPLACE(CAST(jsondata AS CHAR(20)), '\n', '') AS jsondata FROM tablename; 
0

TRIM()を使用すると、空白文字が削除されます。

例:

SELECT TRIM(column_name) AS alias_column_name FROM your_table 

また、あなたがこれを行うには、次の方法を使用することができます。

SELECT SUBSTRING([Column_Name], 1, 100) // Limit to 100 characters 
SELECT LEFT([Column_Name], 20) // Get first 20 characters 

だけでなく、次のようにあなたがこれを行うことができます:

select 
IF(LENGTH([Column_Name]) > 50,CONCAT(LEFT([Column_Name],50),'...'), 
[Column_Name]) as [Alias_Column_Name] FROM your_table 
0

がしたいと仮定最初の15文字を使用できます

SELECT LEFT(column_name , 15) FROM table_name 

空白を削除したい場合、MySQLにはTRIM()関数が付属しています。この関数は、指定された文字列からすべての接頭辞または接尾辞を削除した後に文字列を返します。

TRIM()の構文:TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM ] str)

例:

SELECT TRIM(TRAILING 'trailing' FROM 'texttrailing'); 

あなたは出力から空白を削除することができ、これを使用します。

関連する問題