我有一个包含6列的MySQL表。某些列包含具有换行符和空格的长JSON字符串。当我使用SELECT语句列出表的内容时,输出非常混乱。
是否有命令(或我可以更改的默认设置),将每列的输出限制为前几个有意义的字符,这样无论单元格内容如何,每一行都将显示为单行?类似的东西:
+---------------------------+-------------------------+---------+-----------+--------------+----------+
| jsondata | column2 | column3 | column4 | column5 | column6 |
+---------------------------+-------------------------+---------+-----------+--------------+----------+
| { "Text":[{"user_id":"3","| ABCDEFABCDEFABCDEFABC | 3 | ABCABCA | txt | { "email"|
+---------------------------+-------------------------+---------+-----------+--------------+----------+
答案 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;