var getData = "SELECT * FROM Test WHERE exercise = " + exercise + " AND exerVariName LIKE '[A-Z]%' AND date >= '" + fromDate + "' AND date <= '" + toDate + "'";
Я не могу понять, почему часть LIKE в этой строке не работает! Я нашел в w3schools, что вы можете сделать LIKE '[a-z]%', если вы хотите, чтобы все значения в этом столбце. Но это не сработает. У меня нет ошибок, но я тоже не получаю никаких результатов!SQL comb LIKE & AND & =
У меня есть эта вторая строка, когда я не хочу все, но конкретный (exerVariName), этот работает. (Я выбираю либо конкретный один или 'All' с помощью выпадающего меню.)
var getDataS = "SELECT * FROM Test WHERE exercise = " + exercise + " AND exerVariName = '" + exerVariName + "' AND date >= '" + fromDate + "' AND date <= '" + toDate + "'";
UPDATE!
Я хочу записать некоторые данные из базы данных только для просмотра, поэтому я выбираю «упражнение» с помощью радиообъектов, «exerVariName» с выпадающим меню и «fromDate/toDate» с текстовым полем!
<div>
<select name="exerVariName">
<option value="all">All</option>
@foreach (var get in db.Query(getVariName)) {
<option value="@get.exerVariName">@get.exerVariName</option>
}
</select>
</div>
Так я получаю выберите вариант данных из базы данных, кроме первого, который я поставил там с «все» в качестве значения.
Тогда у меня есть этот код: (thisData ставится в Еогеасп)
var thisData = "";
if (exerVariName == "all") {
thisData = getData;
} else {
thisData = getDataS;
}
так, что если выбрать-опции-выпадающий значение является «все» один, thisData = GetData что это один с LIKE, точка этой строки состоит в том, чтобы выбрать все в столбце из базы данных, поэтому я выбираю все буквы (az).
var getData = "SELECT * FROM Test WHERE exercise = " + exercise + " AND exerVariName LIKE '[A-Z]%' AND date >= '" + fromDate + "' AND date <= '" + toDate + "'";
И если я выбираю что-то конкретное в раскрывающемся списке он будет идти к ELSE части, если заявление и использовать эту линию
var getDataS = "SELECT * FROM Test WHERE exercise = " + exercise + " AND exerVariName = '" + exerVariName + "' AND date >= '" + fromDate + "' AND date <= '" + toDate + "'";
Если вам нужна дополнительная информация, пожалуйста, скажите мне!
Можете уточнить, что именно вы хотите здесь сделать? Вы хотите совместить литеральную строку '[A-Z]' или хотите, чтобы строки начинались с буквы? –
Боковое примечание: ваше заявление уязвимо для SQL-инъекций. – Igor
Это поможет, если вы разместите некоторые данные примера и что вы пытаетесь получить/вернуть из этого набора результатов на основе запроса, который вы пытаетесь сформулировать. Оставьте все, что не связано с диапазонами дат, если эти диапазоны дат не являются частью того, с чем вы столкнулись. – Igor