У меня есть настройка базы данных и в нее вставляются данные. Однако я заметил, что я немного упустил, чтобы вставить. Итак, как мне вставить эти данные между двумя существующими частями в phpmyadmin?Phpmyadmin Вставить данные между двумя уже вставленными?
ответ
В реляционной базе данных, такой как MySQL, нет особого порядка, присущего таблице. Вы должны сортировать по отдельным столбцам при получении информации, если порядок важен для вас (например, по алфавиту по фамилии или по номеру заказа). Помимо этого, MySQL, как правило, обнаруживает информацию в том порядке, в котором она была вставлена, но полагаться на это может вызвать проблемы (например, переупорядочивание при отсутствии строки во время вставки или удаление элемента).
Таким образом, правильное решение действительно сортировать по некоторым надежным средствам (возможно, столбцу «sort_order» INT или метке времени для последнего времени модификации), но единственным обходным путем для этого было бы вручную (или программно) перемещать каждое значение один на один. Вы можете сделать это напрямую с SQL, хотя вам нужно быть осторожным, чтобы не менять слишком много значений. Сначала убедитесь, что у вас есть резервная копия.
Как только у вас есть резервная копия таблицы, вам нужна другая копия таблицы. В этом примере у меня есть «сортировщик» и «сортировщик2», которые идентичны и имеют два столбца; 'id' и 'val'.
UPDATE sorter, sorter2
SET sorter.val = sorter2.val
WHERE sorter.id = sorter2.id +1 AND sorter.id > 15
Это может быть расширена за счет включения более столбцов и, конечно, и заявление должно быть приспособлено, чтобы соответствовать какой строке вы вставляя новые данные. Самый простой способ использовать это - добавить еще одну строку в конец (которая может быть пустой или содержать данные мусора, поскольку вторая-последняя строка вскоре заменит ее), затем запустите SQL, который будет перемещать все до одного, оставляя вам дублированное пространство в любой строке, соответствующей вашей инструкции AND, чтобы вы вручную вставляли недостающую информацию.
Но опять же, я рекомендую использовать лучшее средство сортировки, если заказ важен для вас.