Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
04.01.2010, 19:52
|
|||
---|---|---|---|
|
|||
Select возвращает не все данные |
|||
#18+
Имеется таблица в базе sqlite3 CREATE TABLE attr ( cid INTEGER, fid INTEGER, adr_id INTEGER, attr TEXT ) к ней индекс CREATE INDEX attr_cid_fid_adr_id on attr (cid,fid,adr_id) Выполняется такой селект из php select * from attr where cid=3439 and fid=1700 возвращаются следующие значения cid fid adr_id attr 3439 | 1700 | 1 | 3439 | 1700 | 2 | 3439 | 1700 | 3 | 3439 | 1700 | 4 | 3439 | 1700 | 5 | хотя в базе имеются вот такие записи cid fid adr_id attr 3439 | 1700 | 0 | розничная торговля 3439 | 1700 | 1 | 3439 | 1700 | 2 | 3439 | 1700 | 3 | 3439 | 1700 | 4 | 3439 | 1700 | 5 | почему селект отдаёт пять строк, а не шесть не могу понять? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.01.2010, 22:25
|
|||
---|---|---|---|
|
|||
Select возвращает не все данные |
|||
#18+
Попробовать: 1) получить дамп таблицы и удостовериться, что пропущенная запись на самом деле содержит целые 3439 и 1700 в полях. 2) сделать REINDEX для индекса. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.01.2010, 06:43
|
|||
---|---|---|---|
|
|||
Select возвращает не все данные |
|||
#18+
Dmitry ArefievПопробовать: 1) получить дамп таблицы и удостовериться, что пропущенная запись на самом деле содержит целые 3439 и 1700 в полях. 2) сделать REINDEX для индекса. 1) в дампе эта запись существует! 2) reindex не помог. При использовании программы SQLite Administrator я вижу все эти записи по этому вопрос и возник. Ещё выяснилось, что при замене в столбце adr_id 0 на 6 (или другое число) в запросе недостающая строка начинает появляться. Тупик полнейший не знаю, что делать??? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.01.2010, 08:53
|
|||
---|---|---|---|
|
|||
Select возвращает не все данные |
|||
#18+
как вышел из ситуации.. создал копию таблицы, но поменял порядок столбцов CREATE TABLE attr2 ( cid INTEGER, fid INTEGER, attr TEXT, adr_id INTEGER ) вновь созданную таблицу заполнил данными из исходной insert into attr2 (cid, fid, attr, adr_id) select cid, fid, attr, adr_id from attr удалил все пустые записи в столбце attr2 delete from attr2 where attr="" удалил таблицу attr (для надёжности) drop table attr создал её заново только порядок столбцов оставил как в таблице attr2 CREATE TABLE attr ( cid INTEGER, fid INTEGER, attr TEXT, adr_id INTEGER ) и залил обратно инфу из таблицы attr2 insert into attr (cid, fid, attr, adr_id) select cid, fid, attr, adr_id from attr2 удалил таблицу attr2 drop table attr2 не могу сказать правильно это или нет, но работает! надеюсь такие манипуляции в будущем не аукнутся.... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=54&mobile=1&tid=2009392]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
74ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 326ms |
total: | 500ms |
0 / 0 |