MySQL:如何修剪单元格的内容以使SELECT输出更具可读性

时间:2016-11-13 06:54:29

标签: mysql

我有一个包含6列的MySQL表。某些列包含具有换行符和空格的长JSON字符串。当我使用SELECT语句列出表的内容时,输出非常混乱。

是否有命令(或我可以更改的默认设置),将每列的输出限制为前几个有意义的字符,这样无论单元格内容如何,​​每一行都将显示为单行?类似的东西:

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

3 个答案:

答案 0 :(得分: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

答案 1 :(得分: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' );

使用此功能,您可以从输出中删除空格。

答案 2 :(得分:0)

我不知道您可以在数据库中永久更改的设置,但是这样的内容应该按照您的描述格式化输出:

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