我建立了一个网站,我需要从数据库中选择随机加权记录.
SQL中有一段代码:随机选择一行,但要考虑权重
SELECT t.*, RAND() * t.weight AS w
FROM table t
ORDER BY w DESC
LIMIT 1
Run Code Online (Sandbox Code Playgroud)
它适用于小型记录样本.
当尝试接近1百万的记录时,它在我的本地机器上变慢(1.3 - 1.8秒),我想我会在更大的设备上花更长的时间.
怎么可以优化?有没有更好的方法来随机选择加权记录?
我的尝试是定期计算权重,将它们存储在单独的表中,选择随机数编程并搜索与此数字最接近的记录.
我从被转义的服务器收到响应:
'item':'<b> Some Data </b>'
Run Code Online (Sandbox Code Playgroud)
我将这些数据传递给模板使用 item= json.loads(response)
默认情况下,django 模板(在 Google App Engine 中)会进一步转义它,
因此它在结果中被双重转义。我可以safe用来删除一层转义,如:
{{item|safe}}
Run Code Online (Sandbox Code Playgroud)
我如何将实体转换为相应的符号?
当我使用这个功能如下.
beginInsertRows()
beginInsertRows: identifier not found
Run Code Online (Sandbox Code Playgroud)
我是c ++的新手.我该如何调用此功能?我包括QtSql.我应该包括特别的东西吗?
编辑:我已经搜索了解决方案,所有这些都指向使用此功能,因为我发布.但是我收到了这个错误.
this->sqlModel2 = new QSqlQueryModel();
sqlTableModel = new QSqlTableModel(this);
sqlTableModel->setTable("mytable");
sqlTableModel->select();
qDebug()<< sqlTableModel->lastError().text();
ui->listView->setModel(sqlTableModel);
ui->listView->setModelColumn(1);
QString name;
name= " My name";
QSqlQuery qryInsert;
QString mInsert "INSERT INTO mytable (:name) VALUES (:name)";
qryInsert.prepare(mInsert);
qryInsert.bindValue(":name",name);
beginInsertRows(QModelIndex(),0,1) ;
if(qryInsert.exec()){
qDebug()<<"Inserted";
result = "inserted";
}else{
qDebug()<<"Error inserting = "<<qry.lastError().text();
}
endInsertRows();
Run Code Online (Sandbox Code Playgroud) 如何在提交表格之前检查是否填写了新的(第 2 版)recaptcha?
问题是这个验证码在 iframe 内,不允许从中读取 ID。
清除问题 - 我不想验证验证码,但只是在提交表单之前检查它是否已填写。
编辑:
我在引导模式中有一个表单,如果我将提交它以检查验证码服务器端,那么我将不得不将用户重定向回他正在使用的页面并再次显示模式并显示错误通知。
在我看来,这将是相当糟糕的用户体验。