var getData = "SELECT * FROM Test WHERE exercise = " + exercise + " AND exerVariName LIKE '[A-Z]%' AND date >= '" + fromDate + "' AND date <= '" + toDate + "'";
我似乎无法弄清楚为什么这行中的LIKE部分不起作用!我在w3schools发现你可以做像[a-z]%&#39;如果你想要那个列中的所有值。但它不起作用。我没有收到任何错误,但我也没有得到任何结果!
我有第二行,当我不想要所有,但一个特定的(exerVariName),这个工作。 (我通过下拉菜单选择特定的一个或全部&#39;)
var getDataS = "SELECT * FROM Test WHERE exercise = " + exercise + " AND exerVariName = '" + exerVariName + "' AND date >= '" + fromDate + "' AND date <= '" + toDate + "'";
更新<!/强>
我想从db中写出一些数据只是为了查看,所以我选择“练习”#39;使用radiobuttons,&#39; exerVariName&#39;使用下拉菜单和来自日期/日期&#39;用文本框!
<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>
所以我从数据库中获取select选项数据,除了我放在那里的第一个&#34; all&#34;作为价值。
然后我有这个代码:( thisData放在foreach中)
var thisData = "";
if (exerVariName == "all") {
thisData = getData;
} else {
thisData = getDataS;
}
因此,如果select-option-dropdown值为&#34; all&#34;一,thisData = getData这是一个LIKE,这一行的重点是从数据库中选择列中的所有内容,这就是我选择所有字母(a-z)的原因。
var getData = "SELECT * FROM Test WHERE exercise = " + exercise + " AND exerVariName LIKE '[A-Z]%' AND date >= '" + fromDate + "' AND date <= '" + toDate + "'";
如果我在下拉列表中选择特定的内容,它将转到if语句的ELSE部分并使用此行
var getDataS = "SELECT * FROM Test WHERE exercise = " + exercise + " AND exerVariName = '" + exerVariName + "' AND date >= '" + fromDate + "' AND date <= '" + toDate + "'";
如果您需要更多信息,请告诉我!
答案 0 :(得分:2)
这一行的目的是从数据库中选择列中的所有内容,这就是我选择所有字母(a-z)的原因。
var getData = "SELECT * FROM Test WHERE exercise = " + exercise + " AND exerVariName LIKE '[A-Z]%' AND date >= '" + fromDate + "' AND date <= '" + toDate + "'";
我认为你是在思考这个问题。如果你想要一切(即列上没有过滤器),那么完全省略该子句上的那个部分/过滤器。
"SELECT * FROM Test WHERE exercise = " + exercise + " AND date >= '" + fromDate + "' AND date <= '" + toDate + "'";
最后这很容易受到sql注入攻击,你应该使用参数化语句而不是字符串连接。如果您使用该语言更新问题,我可以使用该语言获取参数化查询的示例。
答案 1 :(得分:1)
如果您希望获得所有测试基础,请像这样使用
var getData = "SELECT * FROM Test WHERE exercise = " + exercise + " AND exerVariName LIKE '%' AND date >= '" + fromDate + "' AND date <= '" + toDate + "'";
答案 2 :(得分:0)
试试这个
var getData = "SELECT * FROM Test WHERE exercise = " + exercise + " AND exerVariName NOT LIKE '%[^A-Z]%' AND date >= '" + fromDate + "' AND date <= '" + toDate + "'";