MySQL:当id首字母是数字时从数据库中删除

时间:2013-07-01 15:05:05

标签: mysql delete-row

我正在尝试从我的数据库中删除一行,并且从外部API生成的援助包含数字。

例如,这是援助:

16RYR3w
15LSPf1
10sLK3
5PlsKs

这就是我想要实现的目标:

$uid = 1;
$aid = '15LSPf1';

DELETE FROM favorites WHERE uid='". $uid ."' AND aid LIKE '". $aid ."'

这不起作用。我做错了什么?我没有选择更改id,因为数字是随机顺序。

4 个答案:

答案 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 ."'

应该工作