|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.10.2020, 10:05 | #1 |
Пользователь
Регистрация: 09.08.2015
Сообщений: 62
|
Поиск в MySQL - Требуется, "пройтись" по всей таблице и вывести остальные поля таблицы
Добрый день,
Нужна помощь. Дано: Файлик, структура думаю не важна, но для примера строка такая: Фамилия:Имя:Отчество:Пол:ДатаРожден ия - количество строк в файле около 3000 Есть таблица, количество записей более 270тыс Требуется, "пройтись" по всей таблице и вывести остальные поля таблицы: Код:
Помогите советом, как оптимизировать, ускорить. И будет ли лучше - вначале получить все записи из таблицы, загнать их в массив, а потом уже оттуда вытаскивать согласно файлу?
Завидую крокодилам! Они даже ходят лежа!
Последний раз редактировалось arriah; 25.10.2020 в 10:13. |
25.10.2020, 11:24 | #2 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,179
|
1. Почему до через like? Делайте строгое сравнение
2. В бд нужно поля по которым идёт поиск сделать с индексом |
25.10.2020, 11:27 | #3 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,179
|
+ думаю тут основной тормоз не только в бд, но и в выводе на экран, оно вам нужно? 3000 записей на экране... Сохраняйте результат в файл, а если все же надо на экране - обычно используют пагинацию,ивыводят по 10-20 результатов
|
25.10.2020, 15:27 | #4 |
Пользователь
Регистрация: 09.08.2015
Сообщений: 62
|
Ну в файлике дата рождения может состоять только из года, а в базе ГГГГ-ММ-ДД, причем поле имеет тип date - переписал так: AND YEAR(data_rojdenya) = '$dr[2]'
Спасибо, проиндексировал поля по которым идет поиск, стало веселее.
Завидую крокодилам! Они даже ходят лежа!
|
25.10.2020, 15:35 | #5 | |
Пользователь
Регистрация: 09.08.2015
Сообщений: 62
|
Цитата:
И тут у меня возник другой вопрос и одно желание: Вопрос: В БД данных несколько таблиц с названием person, person2, person_2018? person2_2018 Как они создавались, для чего, ума не приложу. База досталась в наследство. Скорее всего по этой причине в таблице person отсутсвуют люди, которые есть в текстовом файле... Ну пройтись внаглую по всем таблицам я могу...а вот возможно ли объеденить все эти таблицы в одну, исключая дубликаты записей? Желание: Я знаю адрес, где живет тот, кто это сделал - хочу оторвать ему руки) На самом деле я общался с ним, хотел понять логику построения этого всего - но в ответ получил, типа это теперь моя головная боль. Так что придется разбираться самому В догонку: В поле dom хранится номер дома. У дома есть корпус, в базе записывается как 22К4, мне надо вывести это в двух полях - дом отдельно, корпус отдельно, как мне разделить строку? через explode? Но я не знаю буква К анг или русская
Завидую крокодилам! Они даже ходят лежа!
Последний раз редактировалось arriah; 25.10.2020 в 15:40. |
|
25.10.2020, 16:08 | #6 |
Пользователь
Регистрация: 09.08.2015
Сообщений: 62
|
Такс, возникла еще одна проблемка.
Мое заверение о том, что люди не найдены в таблице person - ошибочно сделал запрос нескольких человек в ручную через phpMyAdmin - они есть в базе, а вот через мой код выше не находятся. Куда можно посмотреть? 1. Файлик был создан из Excel 2. В код вставил строчку чтобы писал что пользователь не найден, ФИО которое он берет из файла отображается нормально, значит не explode виноват. 3. Кодировка БД latin1, а кодировка таблиц cp1251. Конвертировать в UTF не стал, ибо е и ё юникод видит одинаково и есть поля ключевые с этими буквами В коде указано чтобы mysql отдавала данные в UTF8 - mysqli_set_charset($connect, 'utf8' ); В чем еще может быть причина?
Завидую крокодилам! Они даже ходят лежа!
|
25.10.2020, 16:58 | #7 |
Пользователь
Регистрация: 09.08.2015
Сообщений: 62
|
Спасибо. Разобрался. Причина в дате
Завидую крокодилам! Они даже ходят лежа!
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
MySQL Поиск совпадений в таблице | SLOVE251 | SQL, базы данных | 1 | 16.11.2017 17:31 |
Поиск по нескольким словам в таблице mysql | bizarre86 | PHP | 17 | 06.05.2013 06:05 |
Поиск по всей таблице непрерывный | Cyclops | БД в Delphi | 1 | 13.08.2012 13:25 |
Delphi БД поиск по всей таблицы | tanek | Помощь студентам | 1 | 21.03.2012 04:50 |
Как вывести значения поля MySQL в DBLabel, если данные в BLOB... | tim21701 | Компоненты Delphi | 6 | 20.01.2012 20:39 |