|
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, 19:52 |
|
Select возвращает не все данные
|
|||
---|---|---|---|
#18+
Попробовать: 1) получить дамп таблицы и удостовериться, что пропущенная запись на самом деле содержит целые 3439 и 1700 в полях. 2) сделать REINDEX для индекса. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2010, 22:25 |
|
Select возвращает не все данные
|
|||
---|---|---|---|
#18+
Dmitry ArefievПопробовать: 1) получить дамп таблицы и удостовериться, что пропущенная запись на самом деле содержит целые 3439 и 1700 в полях. 2) сделать REINDEX для индекса. 1) в дампе эта запись существует! 2) reindex не помог. При использовании программы SQLite Administrator я вижу все эти записи по этому вопрос и возник. Ещё выяснилось, что при замене в столбце adr_id 0 на 6 (или другое число) в запросе недостающая строка начинает появляться. Тупик полнейший не знаю, что делать??? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2010, 06:43 |
|
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 не могу сказать правильно это или нет, но работает! надеюсь такие манипуляции в будущем не аукнутся.... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2010, 08:53 |
|
|
start [/forum/topic.php?fid=54&tid=2009392]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
255ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 350ms |
0 / 0 |