: 여기
| TABLE_NAME |
-------------|
| table1 |
가 SQLFiddle 데모
이제 저장 프로 시저에
DELIMITER $$
CREATE PROCEDURE list_tables(IN _column_name VARCHAR(64), IN _column_value VARCHAR(256))
BEGIN
SET @sql = NULL;
SELECT GROUP_CONCAT(DISTINCT
CONCAT('SELECT ''', TABLE_NAME, ''' table_name
FROM ', TABLE_NAME,
' WHERE ', _column_name, ' = ''', _column_value, '''')
SEPARATOR ' UNION ALL ')
INTO @sql
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME = _column_name
AND TABLE_SCHEMA = SCHEMA();
SET @sql = CONCAT(@sql, ' ORDER BY table_name');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END$$
DELIMITER ;
그것을 마무리로 끝을 전화에 일을 단순화하고 여기에이
CALL list_tables('store_id', '4');
처럼 사용 SQLFiddle 데모
가 저장 프로 시저를 사용하는 것입니다 수 있습니다 이. 이름이'store_id' 인 컬럼이있는 모든 테이블을 처음으로 반복하십시오. select query에 where 조건을 넣는다. –