У меня есть таблица с ips и количество раз, когда ip обращался к определенной странице. Я хочу добавить одну графу, если строка существует с IP, в противном случае создать строку с IP и установить счетчик на 1.MySql создать или обновить строку с помощью ip?
Я попытался
INSERT INTO mytable (ip,count) VALUES ('" + ip + "',1) ON DUPLICATE KEY UPDATE count=count+1;
Но ф не является уникальным или primary, поэтому он просто создает строки с одним и тем же ip. Я пробовал сделать ip уникальным, но это не позволит мне. Когда я пытаюсь создать текстовый столбец и сделать его уникальным, phpmyadmin говорит BLOB/TEXT column 'test' used in key specification without a key length
.
Я в порядке с использованием двух утверждений. Как я могу это сделать?
Если вы хотите использовать 'UNIQUE', вам придется сначала нормализовать таблицу со всеми повторяющимися строками, прежде чем вы сможете запускать' ALTER' to ma ke столбец 'UNIQUE'. Вероятно, проще всего создать новую таблицу «SELECT INTO» с агрегированными результатами (например, 'SUM' и т. Д.), А затем« DROP »в старой таблице и переименовать таблицу tmp в имя старой таблицы. –