【发布时间】:2020-03-23 22:34:35
【问题描述】:
我想在我的数据库中找出哪一行的“路径”字段的值等于字符串"c:\something\somethingelse\anotherthing.thing"。
在发出SQL 请求之前,我通过浏览找到了该行并复制了它的内容:
在C# 方面,我的代码如下所示:
编辑:由于@CompuChip 的评论,我编辑了我希望可能会更好的东西
String MyPath = "c:\\something\\somethingelse\\anotherthing.thing"
MyPath = String.Format("select * from x where path = '{0}'", MyPath);
然后我调用了方法来创建请求并将请求发送到我的数据库,但我遇到了一个异常
我在我的数据库上尝试了请求本身,但即使我复制了确切的值,它也找不到该行: 这是我尝试过的:
Select * from x where path = "c:\something\somethingelse\anotherthing.thing"
Select * from x where STRCMP(path, "c:\something\somethingelse\anotherthing.thing") = 0
有没有正确比较字符串并找到我的行的好方法?
感谢您抽出宝贵时间,祝您有美好的一天。
编辑 2:
我还尝试在 C# 中获取我的所有行,然后一一比较它们。
它起作用了,但是超过 10K 行它开始消耗资源
【问题讨论】:
-
"但我遇到了异常" - 那会是什么异常?
-
在 sql 中,字符串带有单个 qoutes,
-
请请不要这样构造你的SQL查询。 *.com/questions/7505808/… 不仅添加参数是安全的做法,它还可以让您的引用问题不再是问题。
-
我添加了 MySql Workbench
-
看来我必须在 C# 中做同样的事情,并在路径中放置两个反斜杠而不是一个,即使在 MySQL 中请求也适用于 MySQL,但我仍然在 C# 中收到错误跨度>
标签: c# sql mysql-workbench