【问题标题】:sql count works only on single words, not multiple wordssql count 仅适用于单个单词,而不适用于多个单词
【发布时间】:2017-10-27 23:43:17
【问题描述】:

我已经使用这个 sql 语句很长一段时间了。刚刚注意到它只适用于单个单词。

sql = "SELECT Count(*) as Totalab FROM tablename WHERE city = '" & Server.URLEncode(rs("city")) & "'"

例如:

对于布兰普顿市,这可以正常工作并返回 32(只是示例),因为布兰普顿是 1 个单词。 对于纽约市,它返回 0(例如,它应该返回 56),因为 New York 是 2 个单词。

【问题讨论】:

标签: sql


【解决方案1】:

您是否正在尝试识别匹配的城市?如果是这样,为什么不尝试使用 WHERE EXISTS 条件?

SELECT Totalab
FROM table
WHERE EXISTS (SELECT City FROM Table WHERE CityId = 
SomeValue AND State = XX);

【讨论】:

    【解决方案2】:

    假设这是 VB,那是因为您没有使用 New York 查询数据库。

    您实际上是使用New+York 查询它。

    这是因为,无论出于什么奇怪的原因,you're URL Encoding 字符串将空格 () 替换为加号 (+)。

    无论出于何种原因,如果您正在处理编码参数,您应该解码它们,尽管您使用的任何框架都可能已经为您做到了。

    不过,实际上,我更关心 SQL 注入,如果您只是连接字符串,这可能是一个问题。您需要使用准备好的语句,这也可能解决您认为在这里处理的任何问题。

    【讨论】:

      猜你喜欢
      • 2016-05-26
      • 1970-01-01
      • 1970-01-01
      • 2012-05-07
      • 2017-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-15
      相关资源
      最近更新 更多