[SQL] MySQL의 쿼리 문자열에 대한 데이터베이스 내의 모든 테이블을 검색하려면?
SQLMySQL의 쿼리 문자열에 대한 데이터베이스 내의 모든 테이블을 검색하려면?
데이터베이스 내의 모든 테이블을 검색 할 수있는 MySQL의 쿼리가 있습니까?
당신은 MySQL의 워크 벤치 GUI에서 데이터베이스 내의 모든 테이블을 검색 할 수 있습니다 그렇지 않다면?
phpMyAdmin을에서 당신을 통해 검색 할 모든 테이블을 선택하는 데 사용할 수있는 검색 패널이있다. 나는 젠토 이후, 내가 함께 일하고 있어요 전자 상거래 패키지는 테이블과 다른 제품 세부 수백 다른 테이블에 가지고이 매우 효과적 찾을 수 있습니다.
해결법
-
==============================
1.어떤 프로그래밍 언어의 도움없이, MySQL은 순전히을하고 싶은 경우에, 당신은이를 사용할 수 있습니다 :
어떤 프로그래밍 언어의 도움없이, MySQL은 순전히을하고 싶은 경우에, 당신은이를 사용할 수 있습니다 :
## Table for storing resultant output CREATE TABLE `temp_details` ( `t_schema` varchar(45) NOT NULL, `t_table` varchar(45) NOT NULL, `t_field` varchar(45) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; ## Procedure for search in all fields of all databases DELIMITER $$ #Script to loop through all tables using Information_Schema DROP PROCEDURE IF EXISTS get_table $$ CREATE PROCEDURE get_table(in_search varchar(50)) READS SQL DATA BEGIN DECLARE trunc_cmd VARCHAR(50); DECLARE search_string VARCHAR(250); DECLARE db,tbl,clmn CHAR(50); DECLARE done INT DEFAULT 0; DECLARE COUNTER INT; DECLARE table_cur CURSOR FOR SELECT concat('SELECT COUNT(*) INTO @CNT_VALUE FROM `',table_schema,'`.`',table_name,'` WHERE `', column_name,'` REGEXP ''',in_search,''';') ,table_schema,table_name,column_name FROM information_schema.COLUMNS WHERE TABLE_SCHEMA NOT IN ('information_schema','test','mysql'); DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1; #Truncating table for refill the data for new search. PREPARE trunc_cmd FROM "TRUNCATE TABLE temp_details;"; EXECUTE trunc_cmd ; OPEN table_cur; table_loop:LOOP FETCH table_cur INTO search_string,db,tbl,clmn; #Executing the search SET @search_string = search_string; SELECT search_string; PREPARE search_string FROM @search_string; EXECUTE search_string; SET COUNTER = @CNT_VALUE; SELECT COUNTER; IF COUNTER>0 THEN # Inserting required results from search to table INSERT INTO temp_details VALUES(db,tbl,clmn); END IF; IF done=1 THEN LEAVE table_loop; END IF; END LOOP; CLOSE table_cur; #Finally Show Results SELECT * FROM temp_details; END $$ DELIMITER ;
출처 : http://forge.mysql.com/tools/tool.php?id=232
-
==============================
2.당신은 MySQL의 워크 벤치를 사용하는 경우, 당신은 ... "검색 테이블 데이터를"다음에 검색 할 DB 스키마를 마우스 오른쪽 클릭을 수행하여이 작업을 수행 할 수 있습니다.
당신은 MySQL의 워크 벤치를 사용하는 경우, 당신은 ... "검색 테이블 데이터를"다음에 검색 할 DB 스키마를 마우스 오른쪽 클릭을 수행하여이 작업을 수행 할 수 있습니다.
거기에서 당신은 "REGEX를 사용하여 검색"옵션을 선택하고 평소와 같이 검색 텍스트를 입력 할 수 있습니다. 그것은 특정 텍스트와 일치하는 DB 행을 제공 할 것입니다.
당신은뿐만 아니라 상자 "모든 유형의 검색 열"을 확인해야합니다.
-
==============================
3.데이터베이스가 큰없는 경우 또는, 당신은 덤프을하고 .SQL 생성 된 파일에서 검색을 할 수 있습니다.
데이터베이스가 큰없는 경우 또는, 당신은 덤프을하고 .SQL 생성 된 파일에서 검색을 할 수 있습니다.
-
==============================
4.MySQL의 워크 벤치에서는 테이블 데이터 검색 기능을 사용할 수 있습니다. 그것은 여러 테이블 및 / 또는 여러 데이터베이스를 검색 할 수 있습니다.
MySQL의 워크 벤치에서는 테이블 데이터 검색 기능을 사용할 수 있습니다. 그것은 여러 테이블 및 / 또는 여러 데이터베이스를 검색 할 수 있습니다.
-
==============================
5.데이터베이스의 모든 테이블에서 검색 문자열은 복잡한 작업입니다. 일반적으로 정확히 모든 테이블을 사용할 필요가 없습니다 및 결과는 특정 레이아웃 (나무 테이블의 일치 또는 같은)없이 읽을 복잡
데이터베이스의 모든 테이블에서 검색 문자열은 복잡한 작업입니다. 일반적으로 정확히 모든 테이블을 사용할 필요가 없습니다 및 결과는 특정 레이아웃 (나무 테이블의 일치 또는 같은)없이 읽을 복잡
SQL 워크 벤치 / J는 GUI와 같은 작업을 할 수있는 명령 줄 버전을 제공합니다 :
더 많은 정보:
참고 :이 제대로 구성되지 않은 경우 JDBC 드라이버 검색은 많은 메모리를 사용합니다. SQL 워크 벤치 / J는 그것에 대해 경고하고 온라인 문서는 오래된 조금 있지만, 문서의 소스 (문서 / XML / DB-problems.xml는) 다른 BBDD을 위해 그것을 해결하는 방법을 설명합니다 :
포스트 그레스 여기 추출물 :
from https://stackoverflow.com/questions/7523039/mysql-query-to-search-all-tables-within-a-database-for-a-string by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 어떻게 2000 SQL 서버의 날짜 가득 임시 테이블을 생성 할 수 있습니까? (0) | 2020.05.11 |
---|---|
[SQL] 어떻게 Cloudant / CouchDB를 내 SQL 지식을 사용할 수 있습니까? (0) | 2020.05.11 |
[SQL] SqlCommand를 함께 사용할 때 왜 어떤 SQL 쿼리가 훨씬 느립니다? (0) | 2020.05.11 |
[SQL] 선택 * 및 선택 [목록 각 COL] [중복] 사이에 차이가 있나요 (0) | 2020.05.11 |
[SQL] 자동에는 mysql 기록을 작성 타임 스탬프를 저장 (0) | 2020.05.11 |