Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > как узнать записано чтонибудь в ячейку или нет


Автор: supervladislav 25.4.2009, 21:36
подскажите каким sql запросом проверить есть ли значение в  ячейке или нет ,или наоборот что нет значения в ячейке.

Автор: bars80080 26.4.2009, 01:15
а что тут сложного:

Код

select cell from table where id=17


где cell - имя ячейки, а id=17 - проверяемая строка по уникальному идентификатору (если он конечно существует в таблице)

Автор: supervladislav 26.4.2009, 12:52
а как проверить что там что-то есть чеоез 
mysql_num_rows 

Автор: bars80080 26.4.2009, 17:14
зачем через mysql_num_rows? через неё можно узнать только есть ли эта строка в базе, а вот если есть, то вытаскиваешь через $r = mysql_fetch_array(#sql) данные по строке. и проверяешь что в cell: if(!empty($r['cell']))

Автор: DimW 27.4.2009, 09:48
Цитата(supervladislav @  25.4.2009,  21:36 Найти цитируемый пост)
подскажите каким sql запросом проверить есть ли значение в  ячейке

Код

select * from table t where t.cell is not null;  -- получешь все строки у которых в cell что то есть

Автор: supervladislav 29.4.2009, 15:11
окей спасибо ,а можно ещё спросить как в sql запросе создать отрицание выражения что-то вроде 
если в ячейке нет такой записи 

Автор: DimW 29.4.2009, 16:12
Цитата(supervladislav @  29.4.2009,  15:11 Найти цитируемый пост)
если в ячейке нет такой записи 

Код

select * from table
where cell not in ('a', 'b', 'c');
или
select * from table
where cell <> 'a' and cell <> 'b' and cell <> 'c'

Автор: supervladislav 30.4.2009, 14:55
а вот такой вариант пройдёт 
WHERE !=""

Автор: DimW 30.4.2009, 15:05
если вопрос в том что можно ли "<>" заменить на "!=", то ответ да.

Автор: Gwire 1.5.2009, 19:26
Цитата(supervladislav @  30.4.2009,  14:55 Найти цитируемый пост)
а вот такой вариант пройдёт 
WHERE !=""

smile Я улибаюсь. Без обид. Это ведь не:
Код

DROP USER 'root'@'%'; /* или */ 
DROP DATABASE `MySQL`;
 это просто проверка условия. Можно просто проверить.
Код

SELECT * FROM `mysql`.`help_topic` WHERE `name`='SELECT';
SELECT * FROM `mysql`.`help_topic` WHERE `name`!='SELECT';
SELECT * FROM `mysql`.`help_topic` WHERE `name`~='SELECT';

И посмотреть что работает, а что нет. Быстрее чем ждать ответ. smile

У а если серьёзно:
Если в поле нет никакого значения (тобишь NULL),
то его не проверишь типа "cell = NULL" или "cell != NULL". Эти условия вообще ничего никогда не выбирают.
Только как писал DimW - "cell is null" и "cell is not null"

А проверить через mysql_num_rows можно соединив
Цитата(bars80080 @  26.4.2009,  01:15 Найти цитируемый пост)
select cell from table where id=17

Цитата(DimW @  27.4.2009,  09:48 Найти цитируемый пост)
select * from table t where t.cell is not null;

=
Код
SELECT * FROM table WHERE id=17 AND cell IS NOT NULL /* или */
SELECT * FROM table WHERE id=17 AND cell IS NULL /* смотря как больше нравится. Главное потом не запутаться */

В результате mysql_num_rows вернет либо 1, либо 0.



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)