2017-02-13 4 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 пробела и не один –

+0

@AlonEitan. Он имеет только 1 пробел в первых 4 символах. – shmosel

ответ

0

Если вы получаете результат, что вам нужно:

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

Затем сделайте:

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

Учитывая вам нужно удалить все значения, где есть хотя бы одно место в первых 4-х символов (в примере, первое значение фильтруется, даже если он имеет 2 места), вы можете использовать SUBSTR и INSTR MySQL функции, чтобы отфильтровать значения, например:

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

Вот SQL Fiddle.

+0

Это будет отфильтровывать значения с 2 пробелами – shmosel

+0

Вот что показывает пример. –

+0

Ни один пример не имел 2 пробела в первых четырех символах. – shmosel

Смежные вопросы