mySQL:如何将搜索值与变量组合?

时间:2018-08-11 16:16:12

标签: php mysql mysqli

我敢肯定有一个愚蠢的简单解决方案,但是不幸的是我的google-fu太弱了,找不到它。

我有许多不同的表用于大小调整,所有表都遵循相同的命名约定,即size_001,size_002等。在循环中,我需要获取与已找到的结果匹配的大小条目。

不幸的是,没有完全唯一的标识符,因为它们在每个表中都重复(用于调整大小的罗马数字)。但是它们在每个个人表中都是唯一的。因此,到目前为止,我尝试过的操作看起来像这样:

SELECT * FROM CONCAT('size_00', '.$sizeTableID[$j].') WHERE sizeName LIKE '$sizeNames[$j]'"

其中$ sizeTableId是1到9之间的数字,而sizeName是字符串,例如II或VI,或者偶尔(因为没有一致性)是2等。

我还在CONCAT中尝试了“ $ var”,并且根本不使用CONCAT。真的,我只需要一种方法来连接database.size_00和一个整数变量。

2 个答案:

答案 0 :(得分:0)

PHP在这里有点古怪.....

尝试一下(当变量来自数组/对象时,用{}括起来)

$sql = "SELECT * FROM CONCAT('size_00', '{$sizeTableID[$j]}') WHERE sizeName LIKE '{$sizeNames[$j]}'";

答案 1 :(得分:0)

如果我理解正确,这实际上很简单:

$tablename = 'size00'.$sizeTableID[$j];
$sql = "SELECT * FROM $tablename WHERE sizeName LIKE '{$sizeNames[$j]}'";

我认为可以解决问题。