Синтаксис MySQL с новым номером строки

59
8

Есть ли у кого-нибудь подобный опыт? Я хотел бы добавить auto row num в инструкцию SQL вместо использования столбца автоматического увеличения, поскольку иногда некоторые записи могут быть удалены, а затем число в столбце автоматического увеличения не выполняется непрерывно.

Мой оператор SQL

$sql = 'set @num=0; SELECT @num:= @num+1 as row_num, t.* FROM table_1 t;';

Я запрашиваю инструкцию с помощью mysqli, $ result = $db-> query ($ sql);

Я получил ошибку "У вас есть ошибка в синтаксисе SQL, проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с" SELECT @num: = @num + 1 as row_num, t. * FROM table_1 t ' в строке 1 ", я могу запросить это из phpMyAdmin без каких-либо проблем, в чем проблема для оператора при запросе с использованием mysqli?

С наилучшими пожеланиями,

Кельвин.

спросил(а) 2014-06-22T16:20:00+04:00 6 лет, 4 месяца назад
1
Решение
98

Таким образом, вы не должны использовать первичный ключ. Первичный ключ должен обычно и в идеале быть уникальным идентификатором, который никогда не использовался для любой другой записи без подразумеваемого бизнес-значения (заказ является примером бизнес-значения).

Если вы хотите упорядочить этот путь, используйте ORDER и индексы и, возможно, другое поле.

Вы в основном описываете систему, в которой вы будете повторно использовать Первичные ключи, и это обычно плохая идея.

ответил(а) 2014-06-22T16:25:00+04:00 6 лет, 4 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема