sql >> Databáze >  >> Database Tools >> phpMyAdmin

Dotaz MySQL pro vyhledání záznamu v kompletní databázi

To je poněkud komplikovaná věc. A v jednom kroku to opravdu nejde. Dám ti něco pro začátek a ty to budeš muset vzít odtamtud:

select CONCAT("SELECT * FROM ", TABLE_NAME, " WHERE user_id=1;") FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME="user_id";

Nyní to vytvoří výstup takto:

+--------------------------------------------------------------------+
| CONCAT("SELECT * FROM ", TABLE_NAME, " WHERE user_id=1;")          |
+--------------------------------------------------------------------+
| SELECT * FROM table0 WHERE user_id=1;                              |
| SELECT * FROM table1 WHERE user_id=1;                              |

Nyní se chcete otočit a provést všechny tyto příkazy... tak to udělejte takto:

select CONCAT("SELECT * FROM ", TABLE_NAME, " WHERE user_id=1;") FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME="user_id" INTO OUTFILE "some_file_path_and_name";

Získáte tak textový soubor plný všech příkazů, které hledáte.

Aktualizace ---

Chybělo mi "Pro libovolný bit sloupce.."

select CONCAT("SELECT * FROM ", TABLE_NAME, " WHERE ", COLUMN_NAME, "='WHATEVER';") FROM INFORMATION_SCHEMA.COLUMNS WHERE COLLATION_NAME IS NOT NULL INTO OUTFILE 'somepath';

Zde používáme skutečnost, že jste řekli, že hledáte řetězec, a všechna pole typu řetězec mají název kolace. Nahraďte COkoli tím, co hledáte.




  1. Výchozí hodnoty pro datové typy varchar a int mysql

  2. Intellisense nefunguje v SQL Server 2014

  3. Aktualizace všech řádků v rámci jednoho sloupce pomocí phpMyAdmin

  4. Proč se mi Host '192.168.1.220' nemůže připojit k tomuto serveru MySQL?