PDO更新表,其中“电子邮件”列与来自另一个表的电子邮件匹配,并且在另一列中具有特定的字符串

问题描述

我想在“数据”列中的某个位置更新单个“字符串”,但前提是该表中的“电子邮件”与第二个表中的“电子邮件”相匹配,并且该行具有列字符串匹配“级别”值。

例如:

TABLE1
email            data
user1@aol.com    ABCDEFG
user2@aol.com    ABCDEFG

TABLE2
email            level
user1@aol.com    4
user2@aol.com    5

我希望能够发布一个“级别”以及一个“字符串”和一个“位置”,但是要检查表2中匹配的“电子邮件”列中的“级别”是否与“级别”匹配我发布的内容

在我的示例中,如果level = 5,position = 3和string = Q,则命令应在TABLE2中查找所有level = 5的行,然后将表1中具有匹配电子邮件的行中的数据列更改为ABQDEFG

我可以不使用TABLE2搜索而执行此操作,而只使用电子邮件,但是我无法获取它来搜索TABLE2的匹配级别并更改TABLE1中的相应数据列。

这是我当前的代码

$level = $_POST['level'];
$position = $_POST['position'];
$string = $_POST['string'];

$sql = "UPDATE table1 AS t1 set data = INSERT(data,?,?) WHERE EXISTS (SELECT 1
              FROM table2 AS t2
              WHERE t1.email = t2.email AND
              t2.level = $level)";
$stmt= $pdo->prepare($sql);
$stmt->execute([$position,1,$string]);

不知道是否有人会看到这个,因为在我键入答案时问题已经关闭,但是我发现我错过了?。我打算写出整个解决方案,但我认为现在仍然没人能看到这个问题。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)