0

我需要你的帮助。

我想编写一个函数来检测和确定要在 SQL 字符串中使用的运算符 (LIKE/=)

例子:

var input_string = "SELECT * from table WHERE [FIRSTNAME]"

var input_text = document.GetElementbyId('firstname').value

如果给定的 input_text 满足 4 种可能组合中的 1 种,则运算符值为“LIKE”,否则为等号 (=)

1.) At the start of the string:  %firstname

2.) somewhere in the string itself: first%name

3.) At the end of the string: firstname%

4.) at both ends of the string: %firstname%

例子:

var output_string = input_string + analyze(input_text) '+input_text+'

var output_string 示例:

SELECT * FROM TABLE WHERE [FIRSTNAME] LIKE '%firstname%'
SELECT * FROM TABLE WHERE [FIRSTNAME] LIKE '%first%name'
SELECT * FROM TABLE WHERE [FIRSTNAME] LIKE 'firstname%'
SELECT * FROM TABLE WHERE [FIRSTNAME] LIKE '%firstname%'

别的

SELECT * FROM TABLE WHERE [FIRSTNAME] = 'firstname'
4

3 回答 3

0

由于使用 like 取决于拥有%你应该简单地使用 indexOf 方法检查%字符串中的字符。

例子:

function useLike(input_text)
{
  return input_text.indexOf('%')>-1;
}
于 2013-09-30T20:05:36.807 回答
0

你似乎想要

function analyze(compare) {
    if (compare.indexOf("%") > -1)
        return "LIKE";
    else
        return "=";
    // or shorter with a regex and conditional operator:
    return /%/.test(compare) ? "LIKE" : "=";
}
var output_string = input_string+" "+analyze(input_text)+"'"+input_text+"'";

但是,正如评论中提到的@RocketHazmat ,您可以LIKE始终使用它,它就像=字符串中没有百分号一样工作。

于 2013-09-30T20:08:18.767 回答
0

无论如何,您都应该可以使用LIKE

SELECT * FROM table WHERE firstname LIKE 'John'

是一个有效的查询。

于 2013-09-30T20:09:05.280 回答