1

特定の文字列に対してデータベース エントリを検索することに興味があります。

このようなもの :

SELECT * FROM TABLE WHERE %table_column% LIKE %STRING%

MYSQLでこれを行うことは可能ですか?

ありがとう

4

2 に答える 2

1

いいえ、列名をワイルドカード化することはできません。このように指定できます

SELECT * FROM TABLE 
WHERE col1 LIKE %STRING%
or col2 LIKE %STRING%
or col3 LIKE %STRING%
于 2012-07-23T10:09:34.220 に答える
1

これを達成するために、主にストアドプロシージャ内で動的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');
于 2012-07-23T10:12:13.123 に答える