如何修复错误
how to fix error on
我有 sql 个请求
DELETE FROM BC_UDV3_ROLES
WHERE PERMISSION_ID = 'x' OR
0 < (SELECT * FROM BC_UDV3_ROLES
WHERE "SUBSTR"(PERMISSION_ID, 0, 1)='D') OR '1'='1'
当我执行它时得到这个错误
请帮忙,我该如何解决?
我猜你用错了 SUBSTR
。试试这个:
DELETE FROM BC_UDV3_ROLES WHERE PERMISSION_ID = 'x' OR
0<(SELECT * FROM BC_UDV3_ROLES WHERE SUBSTR(PERMISSION_ID, 0,
1)='D') OR '1'='1'
DELETE FROM BC_UDV3_ROLES
WHERE PERMISSION_ID = 'x'
OR 0 < (SELECT count(*) FROM BC_UDV3_ROLES WHERE SUBSTRING(PERMISSION_ID, 1, 1)='D')
OR '1'='1'
条件的计算结果始终为 TRUE。不需要。
此外,如果您使用 mysql
,函数应该是 substring
而不是 substr
。此外,函数名称周围不应有引号。
您无法将 0
与 table 中的所有列进行比较。请改用 count(*)
。
或者你也可以试试
DELETE FROM BC_UDV3_ROLES
WHERE PERMISSION_ID = 'x'
OR SUBSTRING(PERMISSION_ID, 1, 1)='D'
我有 sql 个请求
DELETE FROM BC_UDV3_ROLES
WHERE PERMISSION_ID = 'x' OR
0 < (SELECT * FROM BC_UDV3_ROLES
WHERE "SUBSTR"(PERMISSION_ID, 0, 1)='D') OR '1'='1'
当我执行它时得到这个错误
请帮忙,我该如何解决?
我猜你用错了 SUBSTR
。试试这个:
DELETE FROM BC_UDV3_ROLES WHERE PERMISSION_ID = 'x' OR
0<(SELECT * FROM BC_UDV3_ROLES WHERE SUBSTR(PERMISSION_ID, 0,
1)='D') OR '1'='1'
DELETE FROM BC_UDV3_ROLES
WHERE PERMISSION_ID = 'x'
OR 0 < (SELECT count(*) FROM BC_UDV3_ROLES WHERE SUBSTRING(PERMISSION_ID, 1, 1)='D')
OR '1'='1'
条件的计算结果始终为 TRUE。不需要。
此外,如果您使用 mysql
,函数应该是 substring
而不是 substr
。此外,函数名称周围不应有引号。
您无法将 0
与 table 中的所有列进行比较。请改用 count(*)
。
或者你也可以试试
DELETE FROM BC_UDV3_ROLES
WHERE PERMISSION_ID = 'x'
OR SUBSTRING(PERMISSION_ID, 1, 1)='D'