我使用perl -n unique input_file
H200:hostname1,hostname2,hostname3
H400:hostname4,hostname5
H500:hostname6,hostname7
H700:hostname8
剪切字符串,并在MySQL中使用SUBSTR()
在字符串末尾添加三个点。这是我的代码:
CONCAT()
我的问题是,上述代码将在所有结果之后全部SELECT CONCAT(SUBSTR(col, 1, 4), ' ...') AS new_col FROM table
。如果我想对超过4个字符的单词执行仅。假设这是我的表:
...
我想要输出
// table
+----+-----------+
| id | col |
+----+-----------+
| 1 | yellow |
| 2 | blue |
| 3 | green |
| 4 | red |
| 5 | grey |
| 6 | brown |
+----+-----------+
我怎样才能在MySQL中做到这一点?
答案 0 :(得分:2)
您可以使用CASE WHEN
:
SELECT
CASE WHEN LENGTH(col) > 4 THEN CONCAT(LEFT(col, 4), ' ...')
ELSE col
END AS new_col
FROM table
答案 1 :(得分:2)
http://sqlfiddle.com/#!9/983e3/2
SELECT id,
CONCAT(SUBSTR(col, 1, 4), IF(LENGTH(col)>4,' ...','')) AS new_col
FROM `table`