我的问题是在搜索查询中使用符号。我希望用户能够使用符号而不会出现问题,但是 mysql 中的 LIKE 函数似乎不是解决方案,所以我需要一些帮助。
示例:如果有人搜索“Blue's car”并且“Blues car”在数据库中,则此查询将返回 0 个结果。或者反之亦然,如果有人搜索“Blues car”并且“Blue's car”在数据库中,则此查询也将返回 0 个结果。
这是我当前正在使用的示例:
("SELECT Title FROM MyData WHERE Title LIKE '%".$search."%'")
Run Code Online (Sandbox Code Playgroud)
还有其他方法可以提供更好的搜索结果吗?
谢谢。
你如何结合NOT IN和LIKE?
假设我们有一个包含一列名称的表(例如“蓝纹奶酪”、“豪达奶酪”等),我想选择所有不包含“奶酪”、“牛奶”、“肉'。
据我了解,寻找不在您使用的字符串数组中的内容NOT IN并传递字符串
SELECT names FROM some_table NOT IN('cheese','milk','meat');
Run Code Online (Sandbox Code Playgroud)
但我该如何通过
LIKE '%cheese%'
Run Code Online (Sandbox Code Playgroud)
到它?
我想_从数据库中选择所有不包含字符的表,为此我使用了请求:
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE table_schema="DB_NAME"
AND TABLE_NAME NOT LIKE '%_%';
Run Code Online (Sandbox Code Playgroud)
但它似乎不起作用。
当我搜索它时,我得到了一些答案。但是当我使用这个解决方案时 - (附有屏幕截图)。
我收到错误
消息 156,级别 15,状态 1,第 38
行关键字“like”附近的语法不正确
我有一个表student_constraint,我想创建一个新表,例如student_constraint.
create table student_info like student_constraint
Run Code Online (Sandbox Code Playgroud)
您能解释一下这个概念吗?
谢谢你!
有什么方法可以使以下查询工作吗?
declare @t nvarchar(20)
set @t='??'
SELECT [perno] ,[pName]
FROM [dbo].[People]
Where [pName] like N''+@t +'%'
Run Code Online (Sandbox Code Playgroud)
我不能这样使用:
Where [pName] like N'??%'
Run Code Online (Sandbox Code Playgroud)
或者使用存储过程:
ALTER PROCEDURE [dbo].[aTest]
(@t nvarchar(20))
AS
BEGIN
SELECT [perno] ,[pName]
FROM [dbo].[People]
WHERE ([People].[pName] LIKE N'' +@t + '%')
END
Run Code Online (Sandbox Code Playgroud) 我试图确定如何在 Snowflake SQL 中识别产品代码是否以三个字母开头。
建议?
我只是尝试过: LEFT(P0.PRODUCTCODE,3) NOT LIKE '[a-zA-Z]%' 但它不起作用。
谢谢大家
我有一个返回产品列表的查询:
@Query(value = "Select * from Product join Product_Pro pp on Product.ID = pp.PRODUCT_ID where A_ID= ?1 order by name",
nativeQuery = true)
List<Product> findAll(long id);
Run Code Online (Sandbox Code Playgroud)
我如何LIKE为此添加一个子句?
当我在数据库中执行此语句时,得到结果:
Select * from Product join Product_Pro pp on Product.ID = pp.PRODUCT_ID where A_ID= ?1 AND name LIKE '%someString%' AND content LIKE '%someString%' order by name
Run Code Online (Sandbox Code Playgroud)
但如何添加LIKE到我的 JPA 本机查询中?
我努力了:
@Query(value = "Select * from Product join Product_Pro pp on Product.ID = pp.PRODUCT_ID where A_ID= ?1 and name LIKE …Run Code Online (Sandbox Code Playgroud) 所以我尝试根据用户输入选择行,如下所示:
db.all(
'SELECT * FROM houses WHERE location LIKE "%$input%"',
{
$input: name,
},
(error, rows) => {
res.send(rows);
}
);
Run Code Online (Sandbox Code Playgroud)
但是,数据库以未定义的值进行响应。我能做些什么?
我试图弄清楚如何从表中选择行的子集,并为每个“父”字符串选择最长的唯一字符串。我将在下面提供表格示例以及我的不起作用的代码。
当前表:
| 姓名 | 销售价格 |
|---|---|
| 北美\美国\东北部\纽约 | 8576 |
| 北美\美国\东北 | 2598 |
| 南美洲\巴西 | 1348 |
| 南美洲\智利\东北 | 9726 |
| 南美洲\智利 | 4412 |
| 北美\加拿大\安大略省 | 3894 |
| 北美\加拿大 | 6321 |
期望的输出:
| 姓名 | 销售价格 |
|---|---|
| 北美\美国\东北部\纽约 | 8576 |
| 南美洲\巴西 | 1348 |
| 南美洲\智利\东北 | 9726 |
| 北美\加拿大\安大略省 | 3894 |
最初,我认为我可以根据反斜杠的数量应用某种形式的逻辑(
example: SELECT * FROM TestTable WHERE Name LIKE '%\\%'
Run Code Online (Sandbox Code Playgroud)
)。然而,这种逻辑不起作用,因为某些名称最远的分支可能只有 1 个反斜杠,而其他名称可能有 3 个以上。
生成测试表的代码如下,任何帮助/建议将不胜感激
create table t1(
[name] varchar(60),
[saleprice] int );
insert into t1 values ('NorthAmerica\US\Northeast\NewYork',8576);
insert into t1 values ('NorthAmerica\US\Northeast',2598);
insert into t1 values ('SouthAmerica\Brazil',1348);
insert into t1 values ('SouthAmerica\Chile\NorthEast',9726);
insert into t1 values ('SouthAmerica\Chile',4412);
insert into …Run Code Online (Sandbox Code Playgroud) 我的表格中有一个全文字段.其中一行是:
"this is the dog that ran over there"
Run Code Online (Sandbox Code Playgroud)
我有以下mysql语句:
SELECT *
FROM `table`
WHERE MATCH (column) AGAINST ('dog that ran')
Run Code Online (Sandbox Code Playgroud)
...返回0条记录
SELECT *
FROM `table`
WHERE `column` LIKE '%dog that ran%'
Run Code Online (Sandbox Code Playgroud)
...返回1条记录
为什么不同?他们应该都返回1条记录,对吗?
sql-like ×10
sql ×7
mysql ×3
sql-server ×3
where-clause ×2
contains ×1
database ×1
exists ×1
jpa ×1
letter ×1
node-sqlite3 ×1
node.js ×1
notin ×1
php ×1
postgresql ×1
search ×1
select ×1
snowflake-cloud-data-platform ×1
spring-boot ×1
sqlite ×1
symbols ×1
t-sql ×1