Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Permintaan mysql mencari string di semua kolom tabel

Berikut adalah bagaimana Anda akan menggabungkan nilai-nilai dalam SQL dinamis:

set @Pattern = '%augusto%';

select @q := concat('select * from Table1 ',
                   'where concat(', group_concat(column_name), ', "") like "', @Pattern, '"'
                   )
from information_schema.columns c
where table_name = 'Table1';

prepare st from @q;
execute st;

deallocate prepare st;

Tentu saja, SQL dinamis tidak terlalu portabel. Idenya akan bekerja di sebagian besar database. Kodenya akan terlihat berbeda.

Diuji dan berfungsi di sini .

Dan akhirnya, Anda dapat melakukannya dengan substitusi variabel (yang merupakan pendekatan yang lebih baik):

select @q := concat('select * from Table1 ',
                   'where concat(', group_concat(column_name), ', "") like ?'
                   )
from information_schema.columns c
where table_name = 'Table1';

set @p = '%augusto%';

prepare st from @q;
execute st using @p;

deallocate prepare st;

Juga diuji (;-).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysqldump menyimpan nol sebagai kosong

  2. Cara memvalidasi satu kotak centang menggunakan PHP &MySQL

  3. Menambahkan kunci asing ke tabel yang ada memberikan kesalahan 1050 tabel sudah ada

  4. Laravel 5.1 Mengunggah File Keamanan

  5. Beberapa nama host dan beberapa hak istimewa?