В настоящее время я немного озадачен тем, как реализовать определенную вещь. По сути, у меня есть встроенная база данных (которая действительно ненавидит JOIN с точки зрения производительности) и требование добавления механизма подстановочных знаков в поле поиска. В настоящее время поле поиска позволяет пользователю вводить дату и некоторые суммы/доходы, которые сопоставляются с помощью чего-то вроде: SELECT * FROM table where date >= '{0}' AND date <= '{1}'
РЕДАКТИРОВАТЬ: Это связано с тем, что адаптер .NET генерирует SQL во время выполнения с возможными различными комбинациями предложений AND. Может быть, пользователь вводит только значение для {0}, может быть, он вводит только одно для {1}, может быть, он вводит оба значения, а может быть, он не вводит ни одного. Поэтому BETWEEN, к сожалению, потерпит неудачу, если я не начну серьезное регулярное выражение.
Я хотел бы использовать ключевое слово LIKE для реализации чего-то вроде:
SELECT * FROM table where date >= LIKE '{0}' AND date <= LIKE '{1}'
с {0}
чем-то вроде "2015.01*"
Я понимаю, что Date может быть слишком много, но возможно ли использование таких вещей, как суммы или доходы? Если да, то каков правильный синтаксис? Гугл в этом мне не друг...
Заранее спасибо за вашу помощь!
between
?select * from something where abc between 0 and 5
. - person Amnesh Goel   schedule 11.06.2015SELECT * FROM table WHERE date BETWEEN LIKE {0} AND LIKE {1}
? - person fk2   schedule 11.06.2015=
, когда вы уверены в значении, используйтеLIKE
, когда хотите выполнить шаблон сопоставления, и используйтеBETWEEN
, когда у вас есть два значения. какbetween 10 and 50
. - person Amnesh Goel   schedule 11.06.2015LIKE
, если у вас нет шаблона для сопоставления. Если вы получаете прямое значение, используйте=
. Не забывайте, что вы можете свободно использовать другие операторы сравнения, такие как>=
,<=
и!=
и т. д. - person Amnesh Goel   schedule 11.06.2015If {1} = string.empty then select * from abc where a = {0} or a like '{0}%' else select * from abc where a between {0} and {1}
или больше вариантов.. дайте мне знать, что вы строите - person Amnesh Goel   schedule 11.06.2015