2017-02-13 45 views
1

如何刪除行,如果前4個字符包含一個空格,需要以上的空間看到的例子mysql的刪除前4個字符,空間

I try this 
DELETE FROM table 
WHERE substring(field,1,4) REGEXP '^[a-z ]+$'; 

+-----------+ 
| field  | 
+-----------+ 
| a asdad| 
| aa asdad| 
| aaa asdad| 
| asda asdad| 
| asd asdad| 
| da asdad| 
| a asdad| 
+-----------+ 

+-----------+ 
| new values| 
+-----------+ 
| asda asdad| 
+-----------+ 
+1

您的數據不符合要求,你到底嘗試解決? – baao

+0

唯一的例外是爲什麼'asd asdad'也被刪除,因爲它有2個空格而不是1個 –

+0

@AlonEitan在前4個字符中只有1個空格。 – shmosel

回答

0

如果你得到的結果是你所需要的:

SELECT col FROM tab 
WHERE substr(col,1,4) like '% %' 

然後做:

DELETE FROM tab 
WHERE substr(col,1,4) like '% %' 
0

考慮到你需要的地方至少有一個空間來消除所有的值在第4個字符(在本例中,第一個值將被過濾掉,即使它有2個空格),你可以使用SUBSTRINSTR MySQL的功能,以篩選出的值,例如:

SELECT value 
FROM test 
WHERE INSTR(SUBSTR(value, 1, 4), " ") = 0; 

這裏的SQL Fiddle

+0

這將過濾出2個空格的值也 – shmosel

+0

這就是問題中的示例 –

+0

前4個字符中沒有任何示例有2個空格 – shmosel