MySQL (F.A.Q.)
#21

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
AI поля по умолчанию Primary Key.
И в который раз повторяю: НИ КОГДА НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ НЕ ТРОГАЙТЕ И НЕ ИЗМЕНЯЙТЕ AI ПОЛЯ!
В таком случае как поступать в данной ситуации? :
Я создаю 6 строк, номера по порядку. Удаляю 3 средние, не заняты номера 2,3,4. Создаю новую строку, он прикрепляет к ней номер 7. А мне надо использовать 2,3,4, на которые он уже не создает.
Reply
#22

Не используй AI
Reply
#23

Quote:
Originally Posted by Alexander_Petrov
Посмотреть сообщение
Не используй AI
То есть к нему не быстрей запрос идёт?
Reply
#24

используй Primary Key, не используй AI, а значение присваивай сам, какое нужно
Reply
#25

Quote:
Originally Posted by Urukhay
Посмотреть сообщение
То есть к нему не быстрей запрос идёт?
Вы используете MySQL ради 6 строк

Правильно хранить ключи базы в другой переменной и работать с ней.
Reply
#26

Вообщем получилось снова создать столбец с AI, удалив другой столбец (не AI) с первичным ключом и создав оба заново, присвоив столбцу без AI опять же первичный, а столбцу с AI уникальный.
Reply
#27

Что будет, если запрос, ссылающийся по ID к определенной таблице, не находит этот ID. Что вернется, если я в одном из столбцов этой таблицы получу данные, 0 вернёт?
Reply
#28

Quote:
Originally Posted by Urukhay
Посмотреть сообщение
Что будет, если запрос, ссылающийся по ID к определенной таблице, не находит этот ID. Что вернется, если я в одном из столбцов этой таблицы получу данные, 0 вернёт?
NULL
Reply
#29

Есть многотабличный SELECT запрос, связь с помощью INNER JOIN.
Как можно проверить, если ли в одной из запрашиваемых таблиц строка, с ID = 1 (Имя Test соответствует ID 1), и если есть, то запрашивать данные этой строки, а если нет - то не запрашивать.

Сам запрос:
Код:
SELECT * FROM t1 
INNER JOIN (t2,t3,t4) ON (t1.ID = t2.ID AND t1.ID = t3.ID AND t1.ID = t4.ID) WHERE t1.Name = 'Test'
Reply
#30

Quote:
Originally Posted by Urukhay
Посмотреть сообщение
Есть многотабличный SELECT запрос, связь с помощью INNER JOIN.
Как можно проверить, если ли в одной из запрашиваемых таблиц строка, с ID = 1 (Имя Test соответствует ID 1), и если есть, то запрашивать данные этой строки, а если нет - то не запрашивать.

Сам запрос:
Код:
SELECT * FROM t1 
INNER JOIN (t2,t3,t4) ON (t1.ID = t2.ID AND t1.ID = t3.ID AND t1.ID = t4.ID) WHERE t1.Name = 'Test'
INNER JOIN работает по принципу исключения, если условие (t1.ID = t2.ID AND t1.ID = t3.ID AND t1.ID = t4.ID) не выполнится, т.е. одно из значений будет отсутствовать в одной из таблиц, вся строка будет исключена из выборки.
Reply
#31

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
INNER JOIN работает по принципу исключения, если условие (t1.ID = t2.ID AND t1.ID = t3.ID AND t1.ID = t4.ID) не выполнится, т.е. одно из значений будет отсутствовать в одной из таблиц, вся строка будет исключена из выборки.
Каламбур в том, что да, одна из таблиц пуста.. А остальные соответствуют условию. Но возвращает общий NULL.
Reply
#32

Подскажите кодировку, которая поддерживает 'АбВгДеЙкА' и так же, русские символы.
Так же, как побороть '\' - запрос не отправляется ( mysql_format не помогает )
Reply
#33

Quote:
Originally Posted by Urukhay
Посмотреть сообщение
Каламбур в том, что да, одна из таблиц пуста.. А остальные соответствуют условию. Но возвращает общий NULL.
Я ещё раз повторю, правдой должно быть все прописанное условие!
Quote:
Originally Posted by k3dr
Посмотреть сообщение
Подскажите кодировку, которая поддерживает 'АбВгДеЙкА' и так же, русские символы.
Так же, как побороть '\' - запрос не отправляется ( mysql_format не помогает )
Если вы удосужитесь прочитать первый пост вы найдете там полную информацию про кодировку!
А что со слешем не так?
Reply
#34

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
Я ещё раз повторю, правдой должно быть все прописанное условие!
Если вы удосужитесь прочитать первый пост вы найдете там полную информацию про кодировку!
А что со слешем не так?
В запросе SELECT если использовать, он не выполняется

WHERE `Password` = '%s' , 123456\
Reply
#35

Quote:
Originally Posted by k3dr
Посмотреть сообщение
В запросе SELECT если использовать, он не выполняется

WHERE `Password` = '%s' , 123456\
всю строку с кодом можно.
Reply
#36

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
всю строку с кодом можно.
PHP код:
mysql_format(databasequery_mysqlsizeof(query_mysql),"SELECT * FROM `table_players` WHERE `Name` = '%s' AND `Password` = '%s'"pNameinputtext);
            
mysql_function_query(databasequery_mysqltrue"LAccount""d"playerid); 
Reply
#37

Как создать строку и вернуть ее поле AI одним запросом?
Reply
#38

Quote:
Originally Posted by Alexander_Petrov
Посмотреть сообщение
Как создать строку и вернуть ее поле AI одним запросом?
никак.
Reply
#39

Можна ли сделать проверку? тоесть чтобы запрос выполнялся если значения field не 0. (Запрос будет выполнятся через крон)

вот как сделать проверку ? (если конечно возможно)
update `table` set `field` = `field` - 1 where `id` != -1
Reply
#40

Гугл хорошая вещь
UPDATE `table` SET `field` = IF(`field`>0,`field`-1,0) WHERE `ID` != -1
Вообщем сам разобрался.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)