我正在尝试从我的数据库中删除一行,并且从外部 API 生成的帮助包含数字。
例如,这是援助的:
16RYR3w
15LSPf1
10sLK3
5PlsKs
这就是我想要实现的目标:
$uid = 1;
$aid = '15LSPf1';
DELETE FROM favorites WHERE uid='". $uid ."' AND aid LIKE '". $aid ."'
这行不通。我做错了什么?我无法选择更改 id,因为数字是随机顺序的。
我正在尝试从我的数据库中删除一行,并且从外部 API 生成的帮助包含数字。
例如,这是援助的:
16RYR3w
15LSPf1
10sLK3
5PlsKs
这就是我想要实现的目标:
$uid = 1;
$aid = '15LSPf1';
DELETE FROM favorites WHERE uid='". $uid ."' AND aid LIKE '". $aid ."'
这行不通。我做错了什么?我无法选择更改 id,因为数字是随机顺序的。
这就是你要找的:
$aid = stripslashes($_GET['aid']);
$query="DELETE FROM favorites WHERE uid='". $uid ."' AND aid LIKE '%". $aid ."%'";
请注意,LIKE
它仅比REGEXP
. 更多关于测试的信息可以在这里找到:http: //thingsilearn.wordpress.com/2008/02/28/mysql-query-speed-regexp-vs-like/
如果您尝试删除第一个字符是数字的任何行,请使用正则表达式:aid
DELETE FROM favorites WHERE uid=whatever AND aid RLIKE '^[0-9]'
上面的正则表达式检查“字符串开头”(即^
)后跟“任何数字”(即[0-9]
)。
试试
$uid = 1;
$援助= 15;
'从收藏夹中删除 uid="'.$uid.'" AND 辅助正则表达式 "^'.$aid.'"'
你有前导零吗?
如果不是,那么可能是这样的:-
DELETE FROM favorites
WHERE CAST( i AS UNSIGNED ) > 0
编辑 - 如果列都是字符格式,则删除您最初拥有的特定记录将起作用,但不确定您为什么使用 LIKE。如果 uid 是数字,则:-
$uid = 1;
$aid = '15LSPf1';
DELETE FROM favorites WHERE uid=". $uid ." AND aid = '". $aid ."'
应该可以正常工作