1

PHP と MySQL でテーブルからデータを取得するために、フィールド名を変数に置き換えたいと考えています。

select * from demo where variable-1

それ以外のselect * from demo where fieldname=1

ドロップダウンから選択するフィールド名が 50 を超えるためです。

4

2 に答える 2

5

変数はfield names、と同様に機能しませんtable Namesそれが行うのは、動的SQLを作成しているときだけです。

SET @variableName = 'fieldname';
SET @sql = CONCAT('SELECT * FROM demo WHERE `', @variableName, '` = 1');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
于 2013-01-28T05:33:34.520 に答える
0

プリペアドステートメントを使用できます

delimiter // 
CREATE PROCEDURE dynamic(IN tbl CHAR(64), IN col CHAR(64))
BEGIN
    SET @s = CONCAT('SELECT ',col,' FROM ',tbl );
    PREPARE stmt FROM @s;
    EXECUTE stmt;
END
//
delimiter ;
于 2013-01-28T05:34:24.200 に答える