0

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

例如,这是援助的:

16RYR3w
15LSPf1
10sLK3
5PlsKs

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

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

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

这行不通。我做错了什么?我无法选择更改 id,因为数字是随机顺序的。

4

4 回答 4

1

这就是你要找的:

$aid = stripslashes($_GET['aid']);
$query="DELETE FROM favorites WHERE uid='". $uid ."' AND aid LIKE '%". $aid ."%'";

请注意,LIKEREGEXP. 更多关于测试的信息可以在这里找到:http: //thingsilearn.wordpress.com/2008/02/28/mysql-query-speed-regexp-vs-like/

于 2013-07-02T05:58:52.937 回答
0

如果您尝试删除第一个字符是数字的任何行,请使用正则表达式:aid

DELETE FROM favorites WHERE uid=whatever AND aid RLIKE '^[0-9]'

上面的正则表达式检查“字符串开头”(即^)后跟“任何数字”(即[0-9])。

于 2013-07-01T15:16:11.353 回答
0

试试
$uid = 1;
$援助= 15;

'从收藏夹中删除 uid="'.$uid.'" AND 辅助正则表达式 "^'.$aid.'"'

于 2013-07-01T15:23:00.803 回答
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 ."'

应该可以正常工作

于 2013-07-01T15:52:26.377 回答