2016-11-13 27 views
0

我有一個6列的MySQL表。一些列包含具有換行符和空格的長JSON字符串。當我用SELECT語句列出表格的內容時,輸出非常混亂。MySQL:如何修剪單元格的內容,使SELECT輸出更具可讀性

是否有一個命令(或默認設置,我可以更改),將每列的輸出限制爲前幾個有意義的字符,以便每行顯示爲單行而不管單元格內容如何?例如:

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

回答

0

我不知道設置,您可以在數據庫中永久更改,但正如你描述它這樣的事情應該格式化輸出:

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

在您的select語句中使用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'); 

使用這個,你可以從你的輸出刪除空格。

相關問題