MySQL 如果 ROW2 包含 "string",则更改 ROW1
MySQL change ROW1 if ROW2 contains "string"
我在数据库中有一个项目列表。我有 item_name
和 is_tradable
列。我希望能够遍历 item_name
中的名称并检查它们是否包含某个字符串,例如"Gold"。如果它们包含该字符串,请将 is_tradable
从 'yes' 更改为 'no'。
例如:item_name "gold gloves" 包含 "gold",所以 is_tradable = "no"
我不确定如何检查 varchar 是否包含字符串。
我的 table shcema 是这样的:
[Item_name, varchar(255), PrimaryKey]
[is_tradable, varchar(255) ]
[other random rows not needed here]
例如:
[item_name: gold_gloves, is_tradable: yes]
我希望能够检查 item_name 是否包含 "gold" 以便我可以更改 is_tradable
.
[item_name: gold_gloves, is_tradable: no]
对您 mysql 结果进行两次迭代。
- 首先用布尔值标记您要查找的字符串。
- 如果 boolean == TRUE,则进行第二次迭代并进行修改。
您可以使用 like
运算符来检查名称是否包含 gold
:
UPDATE my_table
SET is_tradable = 'no'
WHERE item_name LIKE '%gold%'
请注意,根据 table 的排序规则,LIKE
可能区分大小写,也可能不区分大小写。如果您不确定 table 中的值,您可以强制所有值都小写:
UPDATE my_table
SET is_tradable = 'no'
WHERE LOWER(item_name) LIKE '%gold%'
假设您熟悉连接细节和其他内容,并假设 table 名称是 items
,您可以这样做:
使用 PDO:
// Assuming $db contains the connection
$stmt = $db->prepare("UPDATE items SET is_tradable='no' WHERE Item_name LIKE '%Gold%' OR Item_name LIKE %gold%");
$stmt->execute();
以上语句的作用是搜索 Item_name
"contains" 字符串 Gold
或 gold
的每一行,并设置该行的 is_tradable
列到 'no'.
我在数据库中有一个项目列表。我有 item_name
和 is_tradable
列。我希望能够遍历 item_name
中的名称并检查它们是否包含某个字符串,例如"Gold"。如果它们包含该字符串,请将 is_tradable
从 'yes' 更改为 'no'。
例如:item_name "gold gloves" 包含 "gold",所以 is_tradable = "no"
我不确定如何检查 varchar 是否包含字符串。
我的 table shcema 是这样的:
[Item_name, varchar(255), PrimaryKey]
[is_tradable, varchar(255) ]
[other random rows not needed here]
例如:
[item_name: gold_gloves, is_tradable: yes]
我希望能够检查 item_name 是否包含 "gold" 以便我可以更改 is_tradable
.
[item_name: gold_gloves, is_tradable: no]
对您 mysql 结果进行两次迭代。
- 首先用布尔值标记您要查找的字符串。
- 如果 boolean == TRUE,则进行第二次迭代并进行修改。
您可以使用 like
运算符来检查名称是否包含 gold
:
UPDATE my_table
SET is_tradable = 'no'
WHERE item_name LIKE '%gold%'
请注意,根据 table 的排序规则,LIKE
可能区分大小写,也可能不区分大小写。如果您不确定 table 中的值,您可以强制所有值都小写:
UPDATE my_table
SET is_tradable = 'no'
WHERE LOWER(item_name) LIKE '%gold%'
假设您熟悉连接细节和其他内容,并假设 table 名称是 items
,您可以这样做:
使用 PDO:
// Assuming $db contains the connection
$stmt = $db->prepare("UPDATE items SET is_tradable='no' WHERE Item_name LIKE '%Gold%' OR Item_name LIKE %gold%");
$stmt->execute();
以上语句的作用是搜索 Item_name
"contains" 字符串 Gold
或 gold
的每一行,并设置该行的 is_tradable
列到 'no'.