X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Пустая строка
pingvin_hb
pingvin_hb
Topic Starter сообщение 25.3.2012, 18:54; Ответить: pingvin_hb
Сообщение #1


Как в MySQL найти пустое значение строки (которое может содержать несколько пробелов)? В php для этих целей есть удобная функция empty, а в MySQL? В Интернете ничего подходящего не нашёл:-(
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Bugnet
Bugnet
сообщение 25.3.2012, 20:55; Ответить: Bugnet
Сообщение #2


Создал в БД таблицу в несколько строк и три ячейки id, name, password . Для одной строки оставил только значение id , а в полях name и password клацнул несколько раз пробел. Затем
[PHP]$result = mysql_query ("SELECT * FROM mytesttable WHERE name='' AND password='' ");
$myrow = mysql_fetch_array($result);
echo $myrow ["id"];
?>[/PHP]
Исправно выбирается id этой пустой строки
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
pingvin_hb
pingvin_hb
Topic Starter сообщение 26.3.2012, 18:14; Ответить: pingvin_hb
Сообщение #3


Мне надо, что бы исключительно средствами SQL выявлять пустые строки, т.е. в запрос условие должно вставляться после WHERE. Сейчас я делаю условие “LENGTH(`имя_поля`)>3”
Итоговый запрос, выявляющий не пустую строку, вероятно будет:
SELECT * FROM mytesttable WHERE LENGTH(TRIM(`id`))>2;
Кто лучше предложит?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alexdrob
alexdrob
сообщение 26.3.2012, 18:27; Ответить: alexdrob
Сообщение #4


(pingvin_hb @ 26.3.2012, 21:14) *
Мне надо, что бы исключительно средствами SQL выявлять пустые строки

а вам же тут в посте номер 2 показале не средствами SQL? Или по вашему там средства народной медицины задействованы?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
pingvin_hb
pingvin_hb
Topic Starter сообщение 26.3.2012, 18:34; Ответить: pingvin_hb
Сообщение #5


В том посте нет условия, а получение переменной - это php.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alexdrob
alexdrob
сообщение 26.3.2012, 18:39; Ответить: alexdrob
Сообщение #6


(pingvin_hb @ 26.3.2012, 21:34) *
В том посте нет условия

Это что?
(Bugnet @ 25.3.2012, 23:55) *
WHERE name='' AND password=''



( @ 26.3.2012, 21:34) *
а получение переменной - это php

а это тут вообще при чём? Что такое "получение переменной"?
Там просто вывод результата вам визуально на php сделан, делайте на чём вам угодно, ответ на вашу задачу вот
(Bugnet @ 25.3.2012, 23:55) *
=''


А по поводу
(pingvin_hb @ 25.3.2012, 21:54) *
В php для этих целей есть удобная функция empty

Это абсолютно не так. Не когда empty не возвращала true для строки с пробелом. Только для пустой строки.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
pingvin_hb
pingvin_hb
Topic Starter сообщение 26.3.2012, 20:47; Ответить: pingvin_hb
Сообщение #7


(alexdrob @ 26.3.2012, 21:39) *
Это что?

Это условие не соответствует заданию и в дальнейших версиях запрос может работать не так.

(alexdrob @ 26.3.2012, 21:39) *
ответ на вашу задачу вот
Наверное, мне надо было спрашивать, как в запросе определить, что в ячейки что-то есть.

(alexdrob @ 26.3.2012, 21:39) *
Это абсолютно не так. Не когда empty не возвращала true для строки с пробелом. Только для пустой строки.
Тут я ошибся –сюда входит 0, неопределённое значение и ‘’
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alexdrob
alexdrob
сообщение 27.3.2012, 0:16; Ответить: alexdrob
Сообщение #8


(pingvin_hb @ 26.3.2012, 23:47) *
Это условие не соответствует заданию

Вот читаю:
(pingvin_hb @ 25.3.2012, 21:54) *
Как в MySQL найти пустое значение строки (которое может содержать несколько пробелов)?

Я понимаю это так: Как выбрать строку из таблицы, если в ячейке строки пусто или только пробелы.
Ответ, проверить на равенство ''


(pingvin_hb @ 26.3.2012, 23:47) *
в дальнейших версиях запрос может работать не так

Где в условии хоть что то говорится о дальнейших версиях? И приведите пример что значит "работать не так"?

Идеального условия не бывает.
Как можно составить запрос, что бы он к любому условию всегда подходил не меняя запроса?
Да не как :)


(pingvin_hb @ 26.3.2012, 23:47) *
как в запросе определить, что в ячейки что-то есть.

Если
`field` = ''
- это не чего нет, то если подумать как сделать действие обратное этому?
Наверное
`field` != ''
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
pingvin_hb
pingvin_hb
Topic Starter сообщение 27.3.2012, 13:25; Ответить: pingvin_hb
Сообщение #9


(alexdrob @ 27.3.2012, 03:16) *
И приведите пример что значит "работать не так"?
Обычно так говорят, когда в запросе используют обратные одиночные кавычки, хотя и без них так же работает.

Как я выяснил отсутствие символа – ‘’, один пробел - ’ ‘ и много пробелов - ’ ‘, в БД кодируются одинаково, как отсутствие символа.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


 



RSS Текстовая версия Сейчас: 20.4.2024, 1:30
Дизайн