2016-11-13 83 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'); 

使用这个,你可以从你的输出删除空格。

相关问题