SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#26 17.11.2012 06:04:25

platedz
Старожил
Зарегистрирован: 27.03.2012
Сообщений: 314

Re: Проверить наличие записи в колонке

Спасибо, я в общем и целом это уже час читаю (через http://translate.google.com/translate?h … elete.html) и пытаюсь понять.
Было бы там http://dev.mysql.com/doc/refman/5.5/RU/delete.html. было бы попроще. Понять бы что я ищу, спросил бы яндекс. Поэтому буду благодарен за любую подсказку.

Отредактированно platedz (17.11.2012 06:05:47)


Wazzup.su - это сервис объединивший в себе все в одном.

Неактивен

 

#27 17.11.2012 06:15:51

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Проверить наличие записи в колонке

The preceding examples use INNER JOIN, but multiple-table DELETE statements can use other types of join permitted in SELECT statements, such as LEFT JOIN. For example, to delete rows that exist in t1 that have no match in t2, use a LEFT JOIN:

DELETE t1 FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t2.id IS NULL;


P.S. "За одним столом синтаксис" это жесть.

Неактивен

 

#28 17.11.2012 06:20:52

platedz
Старожил
Зарегистрирован: 27.03.2012
Сообщений: 314

Re: Проверить наличие записи в колонке


mysql_query("DELETE table1 FROM table1 LEFT JOIN table2 ON table1.id1 = table2.id2 where table2.id2 IS NULL; ");
 


Видимо делается это так.

Я так понимаю is null должно работать везде и говорит об отсутствии чего-то, только я не очень понял чего. Т.е. в данном случае видимо таблице, но как правильно стоит понимать данный синтаксис?


Wazzup.su - это сервис объединивший в себе все в одном.

Неактивен

 

#29 17.11.2012 06:24:21

platedz
Старожил
Зарегистрирован: 27.03.2012
Сообщений: 314

Re: Проверить наличие записи в колонке

Спасибо за ответ, буду вдвойне благодарен, за пояснения is null. Как бы например я мог использовать его в других запросах.


Wazzup.su - это сервис объединивший в себе все в одном.

Неактивен

 

#30 17.11.2012 06:31:18

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Проверить наличие записи в колонке

Сделайте запрос

SELECT * FROM t1 LEFT JOIN t2 ON t1.id=t2.id;
и посмотрите у каких строк и в какой колонке будут null значения. (Ответ: в случае, если строки из первой таблицы не имеют соответствия по id из второй)


Соответственно запрос
SELECT * FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t2.id IS NULL;
покажет вам какие строки будут удалены из таблицы.
Если не уверены как правильно написать запрос update/delete пишите сначала select, чтобы увидеть какие строки будут изменены/удалены.

Неактивен

 

#31 17.11.2012 07:22:45

platedz
Старожил
Зарегистрирован: 27.03.2012
Сообщений: 314

Re: Проверить наличие записи в колонке

Спасибо большое, просто не знал, что is Null работает когда полей нет, думал, что только если у них в самой таблице null выставлено.


Wazzup.su - это сервис объединивший в себе все в одном.

Неактивен

 

#32 29.11.2012 04:57:55

platedz
Старожил
Зарегистрирован: 27.03.2012
Сообщений: 314

Re: Проверить наличие записи в колонке

Подскажите, пожалуйста, самый простой и быстрый по обработке способ проверить наличие полей, в таблице

замену

(bool)mysql_num_rows(mysql_query("SELECT * FROM ........"))

возможно даже желательно в виде false true

Отредактированно platedz (29.11.2012 05:09:42)


Wazzup.su - это сервис объединивший в себе все в одном.

Неактивен

 

#33 29.11.2012 06:44:38

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Проверить наличие записи в колонке

http://sqlinfo.ru/forum/viewtopic.php?id=6173

P.S. Ну и конечно не писать select *

Неактивен

 

#34 29.11.2012 07:03:12

platedz
Старожил
Зарегистрирован: 27.03.2012
Сообщений: 314

Re: Проверить наличие записи в колонке

Спасибо за ответ
если я правильно понимаю, то это лучший вариант запроса

(bool)mysql_num_rows(mysql_query("SELECT count(*) FROM ........ limit 1"))

Или может есть более удачные варианты? Т.е. мне не нужно количество записей, а только узнать есть они или нет.

Отредактированно platedz (29.11.2012 07:29:52)


Wazzup.su - это сервис объединивший в себе все в одном.

Неактивен

 

#35 29.11.2012 16:25:30

platedz
Старожил
Зарегистрирован: 27.03.2012
Сообщений: 314

Re: Проверить наличие записи в колонке

А подскажте, что будет лучше

так

1)

(bool)mysql_num_rows(mysql_query("SELECT id FROM ........ limit 1"))

или так

2)

(bool)mysql_fetch_array(mysql_query("SELECT count(*)  FROM ........ limit 1"))

?

На мой взгляд при использовании count(*) идет проход по всей базе, а при обращении к id  наверное обход остановится, как только найдет limit записей, и дальше искать не будет. Поэтому скажем если первые записи будут вначале, то запрос обработается быстрее.  Но это только предположение, а вот как оно на самом деле?


Wazzup.su - это сервис объединивший в себе все в одном.

Неактивен

 

#36 29.11.2012 17:01:24

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Проверить наличие записи в колонке

platedz написал:

а при обращении к id  наверное обход остановится, как только найдет limit записей, и дальше искать не будет.

Это если у вас вас order by .. limit
Так как вам сортировка не нужна, то order by null limit 1

Неактивен

 

#37 29.11.2012 17:26:06

platedz
Старожил
Зарегистрирован: 27.03.2012
Сообщений: 314

Re: Проверить наличие записи в колонке

У меня вообще нет order by,

Пока написал,

SELECT id FROM table where id='id' limit 1

или лучше так

SELECT id FROM table where id='id' Order by null limit 1

??

Или еще как?


Wazzup.su - это сервис объединивший в себе все в одном.

Неактивен

 

#38 30.11.2012 00:18:41

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Проверить наличие записи в колонке

Если id уникально, то вообще limit не нужен, иначе второй вариант.

P.S. А зачем в кавычках (ведь id это число)?

Неактивен

 

#39 30.11.2012 00:29:02

platedz
Старожил
Зарегистрирован: 27.03.2012
Сообщений: 314

Re: Проверить наличие записи в колонке

Да id число. Хотя у меня наверное будет несколько запросов, возможно буду и не только уникальные. Большое спасибо за ответ.


Wazzup.su - это сервис объединивший в себе все в одном.

Неактивен

 

#40 30.11.2012 00:35:54

platedz
Старожил
Зарегистрирован: 27.03.2012
Сообщений: 314

Re: Проверить наличие записи в колонке

Хотя если лимит не нужен, то получается он все равно обойдет всю таблицу и не остановится по окончанию limit. Правильно я понимаю?


Wazzup.su - это сервис объединивший в себе все в одном.

Неактивен

 

#41 30.11.2012 01:08:13

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Проверить наличие записи в колонке

Предполагалось, что если уникально значение, то unique index, а так да.

Неактивен

 

#42 30.11.2012 17:04:32

platedz
Старожил
Зарегистрирован: 27.03.2012
Сообщений: 314

Re: Проверить наличие записи в колонке

Еще раз спасибо за ответ.


Wazzup.su - это сервис объединивший в себе все в одном.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson