我有一个数据库中的项目列表。我有列item_name
和is_tradable
。我希望能够浏览item_name
中的名称并检查它们是否包含某个字符串,例如“金”。如果它们包含该字符串,请将is_tradable
从“是”更改为“否”。
例如:item_name“gold gloves”包含“gold”,所以is_tradable =“no”
我不确定如何检查varchar是否包含字符串。
我的表shcema是这样的:
[Item_name, varchar(255), PrimaryKey]
[is_tradable, varchar(255) ]
[other random rows not needed here]
e.g:
[item_name: gold_gloves, is_tradable: yes]
我希望能够检查item_name是否包含“gold”,以便我可以更改is_tradable
。
[item_name: gold_gloves, is_tradable: no]
答案 0 :(得分:1)
您可以使用like
运算符检查名称是否包含gold
:
UPDATE my_table
SET is_tradable = 'no'
WHERE item_name LIKE '%gold%'
请注意,根据表格的排序规则,LIKE
可能会区分大小写,也可能不区分大小写。如果您不确定表中的值,可以强制所有值为小写:
UPDATE my_table
SET is_tradable = 'no'
WHERE LOWER(item_name) LIKE '%gold%'
答案 1 :(得分:1)
假设您熟悉连接细节和其他细节,并假设表名为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
"包含"的每一行。字符串Gold
或gold
并将行is_tradable
列设置为' no'。
答案 2 :(得分:0)
对你的mysql结果迭代两次。