Ребят очень нужна помощь! Как сделать уникальное поле в mysql? Например в access просто указываешь Индексированное поле (Да, совпадения не допускаются) и бд не позволить делать дубли. А Как быть в mysql? Как сделать чтобы Mysql не позволяла добавлять дубли? Формат поля - text. Записей будет десятки миллионов. Если нет такой возможности, то подскажите как эффективно сделать
Так а если все вынести в отдельную таблицу, там сделать Code: text_id INT UNSIGNED AUTO_INCREMENT, text_content TEXT, PRIMARY_KEY(text_id) и все.
если четно не понял зачем так мудрить вообщем сделал varchar UNIQUE KEY Вопрос к спецам, что кошернее сделать: программную проверку на уникальность поля при добавлении записи или использования уникального ключа в таблице?
Contik,я тоже задавался этим вопросом для себя решил что лучше использовать уникальный ключ в таблице, потому что программная проверка сводиться к 1-2 действиям. Найти совпадения, если не нашли вставить запись. Если же сделать уникальное поле, то все сводиться к INSERT IGNORE P.S. таблицы с фиксированным размером строки обрабатываются шустрее
как можно оптимизировать вот эти запросы [1] => 0.000988006591797 [SELECT * FROM bans WHERE 782567033 >= first AND 782567033 <= last] [2] => 0.0012218952179 [SELECT * FROM users WHERE id = 1] [3] => 0.000285863876343 [UPDATE users SET last_access = '2011-12-10 02:53:56' WHERE id = 1] [4] => 0.000401020050049 [UPDATE sessions SET sid = 'b5c206455b6c7fc416861e83ef19dcaa', uid = 1, username = 'Gelman', class = 7, ip = '46.165.6.121', time = 1323474836, url = '/index.php', useragent = 'Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.10.229 Version/11.60' WHERE sid = 'b5c206455b6c7fc416861e83ef19dcaa'] [5] => 0.000308036804199 [SELECT * FROM siteonline] [6] => 0.000298023223877 [SELECT COUNT(*) FROM messages WHERE receiver=1 AND location=1] [7] => 0.000309944152832 [SELECT COUNT(*) FROM messages WHERE sender=1 AND saved='yes'] [8] => 0.000602960586548 [SELECT COUNT(*) FROM peers WHERE userid=1 AND seeder='yes'] [9] => 0.000150203704834 [SELECT COUNT(*) FROM peers WHERE userid=1 AND seeder='no'] [10] => 0.000571012496948 [SELECT * FROM orbital_blocks WHERE active = 1 ORDER BY weight ASC] [11] => 0.000638008117676 [SELECT id, class, username FROM users WHERE nagrada1 = 'yes' OR nagrada2 = 'yes' OR nagrada3 = 'yes' OR nagrada4 = 'yes' OR nagrada5 = 'yes' OR nagrada6 = 'yes' OR nagrada7 = 'yes' OR nagrada8 = 'yes' OR nagrada9 = 'yes' OR nagrada10 = 'yes' ORDER BY bonus] [12] => 0.000460147857666 [SELECT * FROM users WHERE id=6] [13] => 0.00121998786926 [SELECT * FROM users WHERE id=172] [14] => 0.000923156738281 [SELECT * FROM users WHERE id=1] [15] => 0.000979900360107 [SELECT * FROM users WHERE id=7] [16] => 0.000275135040283 [SELECT `id`, `body`, `subject`, `added`, `uid`, `uname`, `checker`, `comments` FROM news WHERE checker='yes' ORDER BY added DESC LIMIT 3] [17] => 0.000334024429321 [SELECT id,type,question,start,exp FROM polls ORDER BY id DESC LIMIT 1] [18] => 0.000249147415161 [SELECT sid FROM polls_votes WHERE user=1 AND pid=4] [19] => 0.000195980072021 [SELECT id,value FROM polls_structure WHERE pollid=4] [20] => 0.000157117843628 [SELECT vid FROM polls_votes WHERE sid=1] [21] => 0.000137090682983 [SELECT vid FROM polls_votes WHERE sid=2] [22] => 0.000179052352905 [SELECT vid FROM polls_votes WHERE sid=3] [23] => 0.000180959701538 [SELECT vid FROM polls_votes WHERE sid=4] [24] => 0.000258922576904 [SELECT * FROM notes WHERE owner = 1 LIMIT 1] [25] => 0.000254154205322 [SELECT COUNT(*) FROM torrents ] [26] => 0.0027129650116 [SELECT id, name, torrents. * FROM torrents ORDER BY added DESC LIMIT 0,9] [27] => 0.00166821479797 [SELECT id, username FROM users WHERE status='confirmed' ORDER BY id DESC LIMIT 1] [28] => 0.000267028808594 [SELECT s.uid, s.username, s.class FROM sessions AS s WHERE s.time > 1323474536 GROUP BY s.username ORDER BY s.class DESC] [29] => 0.000227212905884 [SELECT * FROM logger_texts WHERE date >= '2011-12-09 02:53:56' ORDER BY count_torrents DESC]
Допустим у тебя в поле есть и %Str% ищет либое вхождение Str будь оно в начале, середине или в конце поля. Str ищет только Str
Почему не работает ? CREATE TABLE Student ( Kod_stud integer NOT NULL, Fam char (30) NOT NULL , Adres char (50), Ball decimal, INSERT Student (Kod_stud, Fam) VALUES (’1′,’165′,’0′,’name’) );
INSERT INTO Student (Kod_stud, Fam) VALUES (’1′,’165′,’0′,’name’) 1) Пропущено слово INTO 2) Ты перечислил 2 поля (Kod_stud, Fam) куда вставлять данные, а передаешь аж целых 4 (’1′,’165′,’0′,’name’) 3) Создай сначала таблицу с помощью CREATE TABLE, а потом уже заполняй данными с помощью INSERT INTO, честно говоря не знаю можно ли так писать как у тебя, INSERT внутри CREATE TABLE, но сделай лучше как 100 % можно, сначала создай, потом заполняй.
Есть 2 столбца text и md5, нужно: 1) Условно сгруппировать записи по md5 2) Если в одной из получившихся групп поля text разные (Даже по регистру) 3) Выдать только эту группу Таблица 1,6кк записей, 500mb весов Как все это реализовать? На чистом MySQL
НTL Code: SELECT a.`text`, b.`text`, a.md5 FROM `table` a INNER JOIN `table` b ON a.md5=b.md5 WHERE a.`text`!=b.`text` LIMIT 1
Суть вопроса такая. Есть база, в база есть таблица новостей, новостей там 100500. Как создать запрос, который бы в каждую новость дописывал слово/картинку/данные, в самое начало? Заранее спасиб)
Да, это во всей таблице. Если нужно, добавляйте условие WHERE. Учтите, что текст в начале каждой новости будет одним и тем же
Дада мне так и надо, ток проблема, я вставляю туда html код, а он ток по половине;( сначало последнию половину вставляешь а потом начал ;(
подскажите как сотставить запрос для одной бд. есть 2 таблицы. " log" и "user". в таблице "Log" есть столбец "ID" и "Pass" а в таблице USer "ID" и "mail". подскажите как соместить в 1 запрос. чтоб вывести одим рузультатом. ID mail pass. ключем будет ID. ( нужно чтоб ID был в обеих базах.)
Видимо, как-то так: SELECT log.pass as pass, user.mail as mail FROM log, user WHERE log.id=ID AND user.id=log.id (ID здесь - параметр запроса)