我试图在我的sql数据库中按名称查询某一行,它有一个符号and.我试图设置一个转义字符,然后转义符号,但由于某种原因,这不起作用,我不确定我的问题到底是什么.

Set escape '\'
    select * from V1144engine.T_nodes where node_id in(
    select node2_id from V1144engine.T_edges where node1_id in(
    select node2_id from V1144engine.T_edges where node1_id in(
    select node2_id from V1144engine.T_edges where node1_id = 
      (select node_id from V1144engine.T_nodes where node_name = 'Geometric Vectors \& Matrices')))
    and edge_type_id = 1)
    and node_type_id = 1
    and node_id in (
    select node2_id from V1144engine.T_edges where node1_id =
      (select node_id from V1144engine.T_nodes where node_name = 'Algebra II')
    and edge_type_id = 2);

虽然这与this question的解决方案类似,但问题的提出方式却截然不同.他们可能最终得到相同的解决方案,但这并不意味着问题是相同的.

推荐答案

而不是

node_name = 'Geometric Vectors \& Matrices'

使用

node_name = 'Geometric Vectors ' || chr(38) || ' Matrices' 

38是表示"与"的ascii码,在这种形式下,它将被解释为字符串,而不是其他形式.我试过了,成功了.

另一种方法是使用LIKE和下划线代替"&;"人物:

node_name LIKE 'Geometric Vectors _ Matrices' 

你找到其他唱片的可能性也很低,只有这一个角色不同.

Sql相关问答推荐

Select /过滤postgr中的树 struct

SQL查询视图与连接?

在Oracle中,如何删除具有特定值的行,仅当它是重复的行?

从依赖于其他表的值的XREF表中的值分组获得正确的计数?

如果元素包含通过SQL指定的字符串,则过滤掉数组元素

正在编写查询.我需要将订阅的时间段分为第一个订阅中包含的另一个订阅之前和之后的时间段

在Postgres中合并相似的表

如何设计一个调用嵌套函数并仅在所有被调用的嵌套函数都提交时才提交的事务,例如,如果一个子函数失败则中止?

Oracle 23c ROUND,数据类型为DATE

每小时 Select 1行

Haystack针相交-在元素最多的Haystack中查找集合

如何根据几个条件 Select 值:如果满足一个范围的SUM,则对另一个范围求和

DbUp for sqlserver 在 dbo 授权下为非 dbo 用户创建架构

PostgreSQL:从多个字段收集特定指标的最后一个条目

SQL 语句将一列中的值与另一列中的不同值相加,同时按第三列进行分组?

验证某个日期前后的连续代码

带有数组输入参数的Snowflake UDF优化

将表格和字符串连接以 for each 记录生成订单项目

如何 Select 一列具有最小值而另一列具有给定值的记录?

有没有一种方法可以将始终遵循序列的单个字段的值组合起来,以创建每个 ID 的所有移动?