powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Добавление записей в временную таблицу
11 сообщений из 11, страница 1 из 1
Добавление записей в временную таблицу
    #39238458
mnbcz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для лучшего поиска, строится временная таблица, в которую добавляются результаты множества селектов в том порядке который больше соответствует условиям поиска. Проблема в том что нужно вывести общий результат в порядке добавления записей во временную таблицу, а по умолчанию сортировка производится кажется по id записям.
Решение такое, нужно добавить поле id_temp с ключом AUTO_INCREMENT во временную таблицу, и провести сортировку по этому полю, но как запросом REPLACE INTO temp_kvartiri SELECT .... добавить записи ?, появляется ошибка.

Код: sql
1.
2.
3.
CREATE TEMPORARY TABLE temp_kvartiri
(id_temp int NOT NULL AUTO_INCREMENT, PRIMARY KEY (id_temp), UNIQUE (id)) TYPE=MyISAM 
SELECT * FROM kvartiri WHERE ....



- этот запрос добавляет записи в временную таблицу, в начало каждой записи добавляется поле id_temp

но следующий запрос:
Код: sql
1.
REPLACE INTO temp_kvartiri SELECT * FROM kvartiri WHERE ....



выдает сообщение об ошибке: Mysqli statement execute error : Column count doesn't match value count at row 1
...
Рейтинг: 0 / 0
Добавление записей в временную таблицу
    #39238474
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mnbczэтот запрос добавляет записи в временную таблицу
Это два запроса. И ни в какую таблицу никакие записи они не добавляют.

mnbczвыдает сообщение об ошибке: Mysqli statement execute error : Column count doesn't match value count at row 1
А лениться надо меньше! перечислить нужные поля руки отсохли?
...
Рейтинг: 0 / 0
Добавление записей в временную таблицу
    #39238496
mnbcz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CREATE TABLE mnbcz_arenda.kvartiri (
id int(11) NOT NULL AUTO_INCREMENT,
strana varchar(255) NOT NULL,
oblast varchar(255) NOT NULL,
gorod varchar(255) NOT NULL,
gorod_id int(11) NOT NULL,
oblast_id int(11) DEFAULT NULL,
strana_id int(11) DEFAULT NULL,
...
Рейтинг: 0 / 0
Добавление записей в временную таблицу
    #39238498
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akinamnbczэтот запрос добавляет записи в временную таблицу
Это два запроса. И ни в какую таблицу никакие записи они не добавляют.Почему? Вроде правильно написано, я ошибки не вижу.
...
Рейтинг: 0 / 0
Добавление записей в временную таблицу
    #39238500
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mnbczно следующий запрос:
Код: sql
1.
REPLACE INTO temp_kvartiri SELECT * FROM kvartiri WHERE ....




выдает сообщение об ошибке: Mysqli statement execute error : Column count doesn't match value count at row 1Логично, во временной таблице больше полей, чем в kvartiri.
Вот только непонятно, зачем вообще этот REPLACE нужен.
...
Рейтинг: 0 / 0
Добавление записей в временную таблицу
    #39238535
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftВроде правильно написано, я ошибки не вижу.
Тогда можно полюбопытствовать, какой из запросов "добавляет записи" - который CREATE TEMPORARY TABLE или который SELECT * FROM? так, чисто в познавательных целях...
...
Рейтинг: 0 / 0
Добавление записей в временную таблицу
    #39238537
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinamiksoftВроде правильно написано, я ошибки не вижу.
Тогда можно полюбопытствовать, какой из запросов "добавляет записи" - который CREATE TEMPORARY TABLE или который SELECT * FROM? так, чисто в познавательных целях...Так это один запрос, просто разбит на две строки.
...
Рейтинг: 0 / 0
Добавление записей в временную таблицу
    #39238538
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftэто один запрос, просто разбит на две строки.
Мля... у меня этот текст не помещается без скролла - не увидел, что в конце первой строки отсутствует точка с запятой.
Прошу пардону, погорячился.

Но высказывание насчёт необходимости перечислять поля в явной форме остаётся в силе.
...
Рейтинг: 0 / 0
Добавление записей в временную таблицу
    #39238544
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akinaу меня этот текст не помещается без скроллаПоправил, добавил перенос в исходном посте.
Сообщайте о случаях, когда строка слишком длинная, буду править.
...
Рейтинг: 0 / 0
Добавление записей в временную таблицу
    #39238545
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akinaнеобходимости перечислять поля в явной формеТут полностью согласен.
Звездочка уже неоднократно приводила к казусам в такого рода действиях.
...
Рейтинг: 0 / 0
Добавление записей в временную таблицу
    #39239185
mnbcz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
$sql = "INSERT INTO {$temp_kvartiri} {$select} ON DUPLICATE KEY UPDATE id_temp = id_temp";
или
$sql = "INSERT IGNORE INTO {$temp_kvartiri} {$select}" ?
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Добавление записей в временную таблицу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]