簡體   English   中英

基於列名稱的PHP / MySQL匹配單元格

[英]PHP/MySQL matching cell based on column name

我有一個看起來像這樣的數據庫。

 x  2  3  4  5
 4  8 12 16 20
 5 10 15 20 25
 6 12 18 24 30
 7 14 21 28 35

當最終用戶插入一個值時,我想將x變量與x列中的值匹配,將另一個變量與數字列名匹配。

那么我該如何編寫一個執行此操作的SQL查詢呢?

SELECT * FROM times_tables WHERE x=4 and COLUMN_NAME=4;

謝謝 :)

SELECT
    `4`
FROM
    (SELECT
        4 as `x`, 8 as `2`, 12 as `3`, 16 as `4`, 20 as `5`
    UNION ALL
        SELECT 5, 10, 15, 20, 25
    UNION ALL
        SELECT 6, 12, 18, 24, 30
    UNION ALL
        SELECT 7, 14, 21, 28, 35) `times_tables`
WHERE
    `x` = 4

輸出:

4
---
16

因此,在您的情況下,查詢可能是這樣的:

SELECT `{$col}` FROM `times_tables` WHERE `x` = {$row};

UPD:

可以使用純SQL完成:

SET @r = 4; -- row
SET @c = 5; -- col

SET @qry = CONCAT('SELECT `', @c ,'` FROM `times_tables` WHERE `x` = ', @r);

PREPARE stmt FROM @qry;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

PS:您可以將SQL包裝到存儲過程中,以獲得更好的保護。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM