Поиск по БД непустых полей

Agressive_Pig
На сайте с 15.07.2008
Offline
98
680

Привет всем.

Подскажите, плз, как составить запрос в БД

$query = "SELECT * FROM $userstable WHERE login ='{$login}' AND password=????????";

Надо, чтобы поле password было заполненным, содержало хотя бы пару символов.

zloy.alex
На сайте с 20.04.2009
Offline
22
#1

$query = "SELECT * FROM $userstable WHERE login ='{$login}' AND password is not null";

R
На сайте с 20.08.2007
Offline
139
#2

чтобы не создавать новую тему - вопрос:

как вырезать во всей таблице из одного поля всю инфу и склеить с другим полем? т.е. дописать ко второму полю, добавить текст? А первое поле - пусть станет пустым.

zloy.alex
На сайте с 20.04.2009
Offline
22
#3

update table set

field1=field1||field2,

field2=null

Agressive_Pig
На сайте с 15.07.2008
Offline
98
#4
zloy.alex:
$query = "SELECT * FROM $userstable WHERE login ='{$login}' AND password is not null";

Так результаты поиска все равно включают строки, где password без значений.

Из phpmyadmin:

Поле Тип Сравнение Атрибуты Null

password varchar(100) cp1251_general_ci Нет Нет

A
На сайте с 19.07.2010
Offline
130
#5
Rchernovol:

как вырезать во всей таблице из одного поля всю инфу и склеить с другим полем? т.е. дописать ко второму полю, добавить текст? А первое поле - пусть станет пустым.

update table1 set field2=concat(field2, field1), field1=''

ps: только сделайте сначала бекап, а то вдруг рука где-нить дрогнет :)

admak добавил 25.10.2010 в 13:42

Agressive_Pig:
Так результаты поиска все равно включают строки, где password без значений.

попробуйте так

$query = "SELECT * FROM $userstable WHERE login ='{$login}' AND password is not null AND password";

или так

$query = "SELECT * FROM $userstable WHERE login ='{$login}' AND password";
.............
zloy.alex
На сайте с 20.04.2009
Offline
22
#6
Agressive_Pig:
Так результаты поиска все равно включают строки, где password без значений.

Из phpmyadmin:

Поле Тип Сравнение Атрибуты Null
password varchar(100) cp1251_general_ci Нет Нет

$query = "SELECT * FROM $userstable WHERE login ='{$login}' AND password is not null OR password<>""";

Так точно должно работать.

Agressive_Pig
На сайте с 15.07.2008
Offline
98
#7

Вот так работает:

$query = "SELECT * FROM $userstable WHERE login ='{$login}' AND password<>''";

Всем спасибо за помощь!

zloy.alex
На сайте с 20.04.2009
Offline
22
#8
Agressive_Pig:
Вот так работает:


Всем спасибо за помощь!

Так не совсем корректно, так как здесь учитываются только пустые строки, а значения NULL нет.

$query = "SELECT * FROM $userstable WHERE login ='{$login}' AND (password is not null OR password<>"")";

A
На сайте с 19.07.2010
Offline
130
#9
zloy.alex:
Так не совсем корректно, так как здесь учитываются только пустые строки, а значения NULL нет.

а значения null в данной таблице - нет :)

выше приводились свойства этой таблички.

zloy.alex
На сайте с 20.04.2009
Offline
22
#10
admak:
а значения null в данной таблице - нет :)
выше приводились свойства этой таблички.

Не заметил, был не прав :).

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий