Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Truy vấn Mysql tìm kiếm một chuỗi trong tất cả các cột của bảng

Đây là cách bạn nối các giá trị trong SQL động:

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;

Tất nhiên, SQL động không phải là đặc biệt di động. Ý tưởng sẽ hoạt động trong hầu hết các cơ sở dữ liệu. Mã sẽ trông khác.

Đã kiểm tra và hoạt động tại đây .

Và cuối cùng, bạn có thể làm điều này với thay thế biến (là cách tiếp cận tốt hơn):

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;

Cũng đã được thử nghiệm (;-).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. id duy nhất trong nhiều bảng [MySQL]

  2. Cách cài đặt (L | M) AMP stack trên iPhone?

  3. Truy vấn MySQL có thể chuyển hàng thành cột không?

  4. Kết quả tìm kiếm PHP xuất ra kết quả khác nếu bạn chỉ đưa ra một chữ cái

  5. Bật nhật ký truy vấn chung MySQL với JDBC