MySQL запрос для поиска по всей базе данных - PullRequest
0 голосов
/ 04 июля 2018

Я прочитал несколько ответов, в которых говорится, что для поиска определенной строки во всех таблицах базы данных используется опция поиска в phpMyAdmin. Я попытался использовать запрос, выполняемый phpMyAdmin, чтобы найти строку в сценарии php. Я продолжал получать фатальную ошибку, поскольку выполнение запроса заняло более 30 секунд. Код, который я использовал:

$query="SELECT * FROM `classification`.`class` WHERE (CONVERT(`phylum_id` USING utf8) LIKE '%enteropneusta%' OR CONVERT(`subphylum_id` USING utf8) LIKE '%enteropneusta%' OR CONVERT(`superclass_id` USING utf8) LIKE '%enteropneusta%' OR CONVERT(`class_id` USING utf8) LIKE '%enteropneusta%' OR CONVERT(`class_name` USING utf8) LIKE '%enteropneusta%')";
$result=mysqli_query($query);
while($result){
 print_r($result);
}

снова нужна помощь! Мне удалось создать этот запрос на конструкторе запросов phpmyadmin

SELECT
* FROM
`table1`,
`table2`,
`table3`,
`table4`,...
`table12`,
  WHERE
(
    (
        `table1`.`columnlast` LIKE '%string%'
    ) OR(
        `table2`.`columnlast' LIKE '%string%'
    ) OR(
        `table3`.`columnlast` LIKE '%string%'
    )...

    ) OR(
        `table12`.`columnlast` LIKE '%string%'
    )

Это займет больше 3-4 минут. Есть ли способ сократить время?

Ответы [ 2 ]

0 голосов
/ 12 июля 2018

Итак, моему профессору, который был занят своим собственным проектом, наконец-то удалось освободить время, чтобы выручить меня, и этот запрос мы использовали.

SELECT columnName1 as result FROM tableName1 WHERE columnName1 LIKE '%string%' 
UNION SELECT columnName2 FROM tableName2 WHERE columnName2 LIKE '%string% UNION
...
UNION
SELECT columnName12 as result FROM tableName12 WHERE columnName12 LIKE '%string%'
0 голосов
/ 04 июля 2018

У вас есть несколько способов продлить время ожидания выполнения, в файле php.ini вы можете установить max_execution_time, http://php.net/manual/en/info.configuration.php

На отдельной странице вы можете поставить

set_time_limit(240);

вверху с количеством секунд в качестве параметра.

http://php.net/manual/en/function.set-time-limit.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...