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