PDA

Просмотр полной версии : Помогите с запросом sql DELETE


Nolek
24.07.2009, 20:04
нужно найти все строки в таблице у которой pole1 пустое и удалить

$q="SELECT id FROM table WHERE pole1=''"; не получается
пробовал
WHERE pole1 is null тоже самое
структура таблицы
CREATE TABLE `table` (
`id` int(20) NOT NULL auto_increment,
`pole` varchar(200) NOT NULL,
`pole1` varchar(200) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM;


$q="DELETE FROM leter WHERE mail IS NULL";
$result=mysql_query($q);
if($result){echo'Записи удалены';}else{echo'Никуя не удалены';}

код ошибок не выводит пишет что записи удалены но не удаляет никуя уже с утра парюсь, я в пыхе просто не очень разбираюсь тем более в мускуле, помогите пожалуйста :(

e4key
24.07.2009, 20:10
А как там могут быть пустые значения если стоит NOT NULL? А вообще хотелось бы узнать как они пустые. Там может быть null а может быть пробел или просто ''.

А так:

DELETE * FROM table WHERE id=''

Nolek
24.07.2009, 20:33
вот блин точно, а строки пустые имеют вид пробела и естессно это не null ))

AdvLamer
25.07.2009, 11:19
попробуй так

SELECT id FROM table WHERE pole1 RLIKE '^[[:blank:]]*$'

только табуляция почему то под шаблон не попадает хотя должна вроде

Nolek
25.07.2009, 15:39
SELECT id FROM table WHERE pole1 RLIKE '^[[:blank:]]*$'
так тоже не работает а запрос и структуру эт я привел к примеру, у меня немного больше полей да и запрос по сложнее

e4key
25.07.2009, 16:54
Незнаю как ты там мутишь но DELETE * FROM table WHERE pole1=' ' должен работать :)