标签: sql-like

为什么LIKE不返回末尾带有'%'的变量的行?

我在Microsoft SQL Server上发现这很奇怪:

SELECT * FROM deliveries WHERE code LIKE '01999195000%'
-- 9 rows returned. Works.

DECLARE @a VARCHAR(10)
SET @a='01999195000%'
SELECT * FROM deliveries WHERE code LIKE @a
-- 0 rows returned? Why not?

SET @a = '01999195000'
SELECT * FROM deliveries WHERE code LIKE @a + '%'
-- 9 rows returned. Works.
Run Code Online (Sandbox Code Playgroud)

搜索包含%字符的@a和没有添加'%'的@a之间有什么不同?

如果你们中的任何一个SQL Guru可以分享你的想法,那就太好了.

sql sql-server like-keyword sql-like

1
推荐指数
1
解决办法
338
查看次数

MySQL LIKE语句不起作用

我正在尝试将数据从一个表复制到另一个表.

这是我的发言:

UPDATE tblMerchants T,
       retailers R 
   SET T.linklabel = R.linklabel,
       T.logo_image = R.logo_image,
       T.screen_image = R.screen_image,
       T.category = R.category,
       T.meta_description  = R.meta_description,
       T.meta_title = R.meta_title,
       T.meta_keywords = R.meta_keywords,
       T.intro = R.intro,
       T.permalink = R.permalink,
       T.excerpt = R.excerpt,
       T.main_link = R.main_link,
       T.related_blog_post = R.related_blog_post,
       T.active = R.active, 
       T.homepage_featured = R.homepage_featured 
 WHERE T.homepageurl LIKE '%R.linklabel%'
Run Code Online (Sandbox Code Playgroud)

例如,T.homepageurl看起来像http://www.amazon.com/R.linklabel看起来像amazon.com.所以我无法弄清楚为什么它不起作用.我没有收到任何错误,只是说有0行受到影响.

mysql sql sql-like

1
推荐指数
1
解决办法
978
查看次数

Hibernate Criteria API条件"like"带整数

在我的数据库中,我有一个"year"列,它是一个整数.

如何使用Criteria API(而不是HQL)搜索哪些记录包含,例如年份列中的"196 ..."?

我认为它应该是Restrictions.like,但我得到了例外:

__PRE__

string integer hibernate criteria sql-like

1
推荐指数
2
解决办法
4677
查看次数

在SQL Server中查找前1个最匹配的字符串

我有一个表' MyTable ',它有一些商业逻辑.此表有一个名为Expression的列,其中包含使用其他列构建的字符串.我的疑问是

Select Value from MyTable where @Parameters_Built like Expression
Run Code Online (Sandbox Code Playgroud)

变量@Parameters_Built是通过连接所有输入参数构建的.

在我目前的情况下,

@Parameteres_Built='1|2|Computer IT/Game Design & Dev (BS)|0|1011A|1|0|'

Below are the expressions
---------------------
%%|%%|%%|0|%%|%%|0|
---------------------
1|2|%%|0|%%|%%|0|
---------------------
1|%%|%%|0|%%|%%|0|
---------------------
Run Code Online (Sandbox Code Playgroud)

所以我的上面的查询对于所有三行都返回true.但它应该只返回第二行(最大匹配).

我只是不需要针对此方案的修复解决方案.这只是一个例子.我需要一个像选择最佳匹配的解决方案.任何的想法?

sql string sql-server-2005 sql-like

1
推荐指数
1
解决办法
4171
查看次数

避免在SQLQueries中使用LIKE

我可以在查询中使用什么而不是LIKE?由于LIKE对搜索条件的性能影响较差.

我的情景:

SELECT 
    *
FROM 
    MetaDataTag
WHERE 
    Name LIKE 'SUN RCC%'
Run Code Online (Sandbox Code Playgroud)

我不能使用包含作为表格上的全文索引,我不选择.

建议将非常有帮助.

sql t-sql sql-server database-performance sql-like

1
推荐指数
1
解决办法
189
查看次数

MySQL在逗号分隔的集合中找到一个值

我将这样存储的值存储在字段中1,255,230,265

MySQL中是否有一个函数可以为我提供该字符串中的第二个值?在这种情况下会是255

我尝试使用locate,但这似乎并不意味着这样做。

mysql sql select sql-like find-in-set

1
推荐指数
1
解决办法
1803
查看次数

比较两列的值

有没有办法比较MySQL中两列的值?例如,如果我有一个表:

+----------------+
| Col1  | Col2   |
|----------------|
| abc   | 123abc |
| def   | 234def |
|       | 123ghi |
+----------------+
Run Code Online (Sandbox Code Playgroud)

我想检索Col2包含以下值的所有条目Col1:

+---------+
| NewCol  |
|---------|
| 123abc  |
| 234def  | 
+---------+
Run Code Online (Sandbox Code Playgroud)

我该怎么办呢?

这是一个伪查询,可以进一步解释.

SELECT Col2 FROM TableName WHERE Col2 LIKE Col1;
Run Code Online (Sandbox Code Playgroud)

mysql select sql-like

1
推荐指数
1
解决办法
122
查看次数

使用LIKE运算符排序结果

在SQL Server中,我可以使用此SQL语句:

SELECT * 
FROM Customers
WHERE Country LIKE '%land%';
Run Code Online (Sandbox Code Playgroud)

此查询将返回包含字符串的值land.

是否可以按字符串的位置对返回值进行排序land

例:

输入值:"新西兰,美国,Landcountry,Alandia"

产值:"Landcountry,Alandia,New Zealand"

sql sql-server where sql-like

1
推荐指数
1
解决办法
1171
查看次数

Ecto查询字符串字段包含其他字符串

我正在构建一个简单的搜索功能,我想找到字符串字段中包含字符串的所有记录.

这是我尝试过的.

term = "Moby"
MyApp.Book
|> where([p], String.contains?(p, term))
|> order_by(desc: :inserted_at)
Run Code Online (Sandbox Code Playgroud)

这将返回以下书籍:

  • 白鲸记
  • Sandich Moby Lean
  • 我的Mobyand示例

但我得到:

`String.contains?(p, term)` is not a valid query expression
Run Code Online (Sandbox Code Playgroud)

elixir sql-like ecto

1
推荐指数
1
解决办法
1758
查看次数

在LIKE中转义通配符

在Oracle中使用SQL 运算符时,如何转义通配符(_%)LIKE

我今天遇到了一个愚蠢的问题.我需要_使用在varchar列上搜索下划线的存在LIKE.它不起作用 - 正如预期的那样 - 因为下划线是根据SQL的通配符.这是我的(简化)代码:

create table property (
  name varchar(20),
  value varchar(50)
);

insert into property (name, value) values ('port', '8120');
insert into property (name, value) values ('max_width', '90');
insert into property (name, value) values ('taxrate%', '5.20');
Run Code Online (Sandbox Code Playgroud)

我在PostgreSQL中尝试了以下查询,它们返回我想要的行:

select * from property where name like '%\_%'; -- should return: max_width

select * from property where name like '%\%%'; -- should return: taxrate%
Run Code Online (Sandbox Code Playgroud)

不幸的是,它在Oracle 12c中不起作用.是否存在逃避通配符的"标准"方式?或者至少在Oracle中有效的东西?

sql oracle sql-like

1
推荐指数
1
解决办法
188
查看次数