SQL 中delete的语法错误如何修改?
1个回答
展开全部
第一句建议分开写,先定义变量(@username
和
@password),将变量赋值后再在delete语句里使用。
非要写在一句里的话,如果是ms
sql
server可以用
row_number()
关键字,用法比较复杂,其他数据库不熟悉,其他方法暂没想到。
第二个简单,如果是想删以r为结尾的,可以用like关键字
delete
from
admin
where
id=3
and
username='new'
and
password
like
'%r'
_____________________________________________________________________
我的意思是,把你的那段“select
top
1
password
from
admin
where
id
=1”拉到外面来单独执行,并且定义为变量
完整的做法是:
declare
@password
varchar
set
@password
=
select
top
1
username
from
admin
where
id
=3
and
username='new'
and
password
like
'%r'
delete
from
admin
where
id=3
and
username='new'
and
password
=
@password
但是注意一点,对于两条完全一样的数据,只能一起删除。
数据库不支持单独删除多条一模一样的数据中的一条,至少ms
sql
server是这样。
如果实在要只删一条,可以先计算目标数据的行数,全部删除后再重新插入多删掉的
和
@password),将变量赋值后再在delete语句里使用。
非要写在一句里的话,如果是ms
sql
server可以用
row_number()
关键字,用法比较复杂,其他数据库不熟悉,其他方法暂没想到。
第二个简单,如果是想删以r为结尾的,可以用like关键字
delete
from
admin
where
id=3
and
username='new'
and
password
like
'%r'
_____________________________________________________________________
我的意思是,把你的那段“select
top
1
password
from
admin
where
id
=1”拉到外面来单独执行,并且定义为变量
完整的做法是:
declare
@password
varchar
set
@password
=
select
top
1
username
from
admin
where
id
=3
and
username='new'
and
password
like
'%r'
delete
from
admin
where
id=3
and
username='new'
and
password
=
@password
但是注意一点,对于两条完全一样的数据,只能一起删除。
数据库不支持单独删除多条一模一样的数据中的一条,至少ms
sql
server是这样。
如果实在要只删一条,可以先计算目标数据的行数,全部删除后再重新插入多删掉的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询