Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
针对字符串的MySQLquery数据库_Mysql - Fatal编程技术网

针对字符串的MySQLquery数据库

针对字符串的MySQLquery数据库,mysql,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

我对根据给定字符串搜索数据库条目感兴趣

大概是这样的:

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');

您的意思是要在所有列中搜索相同的字符串吗?