Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 查询以检查是否有以输入字符串开头的行_Sql_String_Sqlite_Where Clause_Sql Like - Fatal编程技术网

Sql 查询以检查是否有以输入字符串开头的行

Sql 查询以检查是否有以输入字符串开头的行,sql,string,sqlite,where-clause,sql-like,Sql,String,Sqlite,Where Clause,Sql Like,让我们假设have列具有值 Html、Java、JQuery、Sqlite 如果用户输入 Java是我最喜欢的编程语言 那么结果应该是 选择值为Java的1行 因为输入的句子以Java开头 但如果用户输入 我的应用程序数据库在Sqlite中 然后查询应该返回空 已选择0行 因为输入的句子不以Sqlite开头 我正在尝试以下查询: SELECT * FROM demo where 'Java' like demo.name; // work 但如果输入长文本,则失败 SELECT * FROM

让我们假设have列具有值

Html、Java、JQuery、Sqlite

如果用户输入

Java是我最喜欢的编程语言

那么结果应该是

选择值为Java的1行

因为输入的句子以Java开头

但如果用户输入

我的应用程序数据库在Sqlite中

然后查询应该返回空

已选择0行

因为输入的句子不以Sqlite开头

我正在尝试以下查询:

SELECT * FROM demo where 'Java' like demo.name; // work
但如果输入长文本,则失败

SELECT * FROM demo where 'Java is my favorite programming language' like demo.name; // Fails

只需将列名放在like运算符的左侧,并在字符串keywork的右侧连接一个通配符:

select * from demo where name like 'Java%' ; -- or like 'Sqlite%' etc
您可以使其更通用,如:

select * from demo where name like ? || %' ;

在哪里?是一个绑定参数,表示用户提供的值。在传递该参数之前,您还可以在应用程序中与通配符连接。

只需将列名放在like运算符的左侧,并在字符串keywork的右侧连接通配符:

select * from demo where name like 'Java%' ; -- or like 'Sqlite%' etc
您可以使其更通用,如:

select * from demo where name like ? || %' ;

在哪里?是一个绑定参数,表示用户提供的值。在传递该参数之前,您还可以在应用程序中与通配符连接。

我想您需要这样的值:

SELECT * FROM demo WHERE yourText LIKE demo.name || '%' ;

我想你想要这样的东西:

SELECT * FROM demo WHERE yourText LIKE demo.name || '%' ;

您可以这样进行查询


您可以这样进行查询


不确定我是否有问题,但是

您可以查询这些值Html、Java、JQuery、Sqlite,将它们放入一个集合中,如列表,然后获取用户的输入并进行检查:

List<String> values ... // Html, Java, JQuery, Sqlite

for (String value : values) {
   if (userInput.contains(value) {
      // print
      System.out.println("1 row selected with value \"Java\");
   }
}

它支持用户键入多个选项的情况。

不确定我是否遇到问题,但

您可以查询这些值Html、Java、JQuery、Sqlite,将它们放入一个集合中,如列表,然后获取用户的输入并进行检查:

List<String> values ... // Html, Java, JQuery, Sqlite

for (String value : values) {
   if (userInput.contains(value) {
      // print
      System.out.println("1 row selected with value \"Java\");
   }
}

它支持用户键入多个选项的情况。

使用通配符连接列:

SELECT * FROM demo where 'Java is my favorite programming language' like demo.name || '%';

使用通配符连接列:

SELECT * FROM demo where 'Java is my favorite programming language' like demo.name || '%';

我无法控制用户将要输入的内容。我怎么知道用户是否输入了JavaI?我无法控制用户将要输入的内容。我怎么知道用户是否输入了JavaYou应该用| |替换+来连接字符串。@厄立特里亚人谢谢我以为+会连接字符串您应该用| |替换+来连接字符串。@厄立特里亚人谢谢我以为+会连接字符串