繁体   English   中英

在比较另一个表的值之后更新平板电脑的字段,并搜索表的字段内是否存在值Hard Job

[英]Updating a field of a tablet, after a comparation of value of another table and search if value is present inside a field of a table Hard Job

我在SQL中有2个表,我需要检查表说明中字段说明中的表付款是否包含表发送中存在的代码,如果是,则仅当字段说明中存在代码时才在归档标记上写1,例如,仅在这种情况下第3行的标记应变为1

payment                                         shipping

id  description      amount             number      code      mark
1    payment dog       10                 1          sky       0
2    payment cat       20                 2          bed       0
3    payment frog      30                 3          dog       1




 $sqlupdate= "UPDATE shipping SET shipping.mark = '1' IN ( SELECT description FROM payment WHERE description LIKE '%$code%' )";

$sql = "SELECT number, code, mark FROM shipping WHERE mark = '0'";
$conn->query($sql);
$result = $conn->query($sql);

while($row = $result->fetch_assoc()) {
$code= $row['code'];
    if (mysqli_query($conn, $sqlupdate)) {
 echo "Record updated successfully";
} else {
 echo "Error updating record: " . mysqli_error($conn);
}

这不会返回我错误,但不会更新数据库,

我尝试使用其他方法

但我从来没有达到我的目标

您可以在一个查询中执行此操作。 如果您只想将值更新为“ 1”,请使用:

UPDATE shipping s JOIN
       descriptions d
       ON d.description LIKE CONCAT('%', s.code);
    SET s.mark = 1 ;

如果要更新所有值(“ 1”和“ 0”),则:

UPDATE shipping s
   SET mark = EXISTS (SELECT 1
                      FROM descriptions d
                      WHERE d.description LIKE CONCAT('%', s.code)
                     );

尝试使用SUBSTRING_INDEX从描述列获取代码,然后使用wherer条件,如下所示

       UPDATE shipping 
        SET shipping.mark = '1' 
        where shipping.code IN 
( SELECT SUBSTRING_INDEX(description,' ',-1) FROM payment WHERE description LIKE '%$code%' )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM