Help! Нужет путёвый скрипт выборки из базы порциями. Внизу ссылочки 1,2,3,4... Написал своими силами, но что то мне не нравиться Help!
ХЫ В таблице имеются следуюшие поля : link_id- ID ссылки link- сюда вносится ссылка введенная пользователем с формы Так вот не скажете как сделать чтоюбы при добавлении ссылки автоматически создавался ее уникальный нормер в link_id. Например если ссылка была добавлена первой то id должен быть 1 если ссылка добавлена второй то id должен быть два .... и т.д.
Установи полю link_id дополнительное значение auto_increment через phpmyadmin. Примерно так можно через sql сделать: Code: ALTER TABLE `table` CHANGE `link_id` `link_id` INT( 11 ) NOT NULL AUTO_INCREMENT) ALTER TABLE `table` ADD UNIQUE (`link_id`)
Блин ... Так полю значения задал но немного подругому .....но теперь при добавлении данных в базу через форму вылезает Column count doesn't match value count at row 1
И снова я Есть две таблицы users и link В таблице users поля : user_id, name, pass В таблице link user_id, link При регистрации пользователя ему выдается id. Ну так вот нужно чтобы при входе пользователя на сайт по ему уникальному ид из таблицы link выдавалась ссылка введенная им при регистрации ..... Я так понимаю что user_ id в первой таблице должен иметь иметь значение PR, а user_id во второй таблице FK ? Я прав ...а как это сделать задать FK?
Ты правильно понял, создаешь в таблице users поле user_id которое будет primary key, а в таблице link поле user_id оставляешь как есть или у тебя уже все создано и проблема с запросом?
m0nsieur думаю он разобрался как сделать первичный ключ, и его интересует как сделать внешний Видимо хочется человеку ссылочную целостность в БД поддерживать. still12 внешний ключ создается след. образом: Если у тебя уже созданыы таблицы, то соответственно нам необхоимо расширить их структуру ALTER TABLE `link` ADD FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE Причем если users_id является первичным ключем, то его уточнение после REFERENCES можно опустить, т.е. REFERENCES `users` а ON DELETE CASCADE ON UPDATE CASCADE определяют действия базы в случае удаления\обновление того элемента, на который ссылаемся (в данном случае мы выставили каскадное, т.е. если например удалится запись о юзере, то автоматически удалятся записи о его линках)
Исходная: в строке sql таблицы Code: password(varchar(100)) введены разные типы хэшей (MD5 и MD5:соль), отличающиеся, соответственно, длиной строки и символом-разделителем : Code: 3b8f3744bf2a000023e470318c315543 a9b8f2d3e1cb0000c031744208939aaa:8XA0DTaXVWJ73X86 d4fa96a300000f764f90a7be296e5cdb c4f884f2aed00000740c251a973b1e96 5d7c7d6f98be78000003ae6f707ebe59:WZyGIinDH5adLQEv Поскажите, как сформулировать правильно запрос select, чтобы выводились только md5 строки либо шла сортировка по длине строки (сначала чтобы выводились md5 а потом соленые md5). Заранее спасибо
scarm Функцией LENGTH() Code: SELECT * FROM `table` ORDER by LENGTH(`password`) Соответственно если нужно вывести только md5 без соли, то так Code: SELECT * FROM `table` WHERE LENGTH(`password`) = 32
Можно еще, к примеру, разделить поле password на две колонки - в первой находится хэш, во второй - соль или NULL, если хэш несоленый. Code: mysql> select substring_index(password, ':', 1), case when locate(':', password) > 0 then substring(password, locate(':', password)+1) else NULL end from table; | 3b8f3744bf2a000023e470318c315543 | NULL | | a9b8f2d3e1cb0000c031744208939aaa | 8XA0DTaXVWJ73X86 | | d4fa96a300000f764f90a7be296e5cdb | NULL | | c4f884f2aed00000740c251a973b1e96 | NULL | | 5d7c7d6f98be78000003ae6f707ebe59 | WZyGIinDH5adLQEv |
Ребята, есть вопрос по удалению дублей в mysql. Имеется 5 таблиц Code: table_1, table_2, table_3, table_4, table_5, Дубли надо искать по первым двум совместно.