我有兴趣根据给定字符串搜索数据库条目。
像这样的东西:
SELECT * FROM TABLE WHERE %table_column% LIKE %STRING%
可以用 MYSQL 做到这一点吗?
谢谢
我有兴趣根据给定字符串搜索数据库条目。
像这样的东西:
SELECT * FROM TABLE WHERE %table_column% LIKE %STRING%
可以用 MYSQL 做到这一点吗?
谢谢
不,您不能对列名进行通配符。您可以像这样指定它们
SELECT * FROM TABLE
WHERE col1 LIKE %STRING%
or col2 LIKE %STRING%
or col3 LIKE %STRING%
您可以主要在存储过程中使用动态 MySQL 来完成此操作:
CREATE PROCEDURE sp_test
(
arg_column_name VARCHAR(255)
,arg_filter VARCHAR(255)
)
BEGIN
SET @query1 = CONCAT('
SELECT *
FROM table_name a
WHERE a.',arg_column_name,' LIKE "%',arg_filter,'%"'
);
PREPARE stmt FROM @query1; EXECUTE stmt; DEALLOCATE PREPARE stmt;
END;
CALL sp_test('column_name','filter_val');