在这里,我们将给大家分享关于使用条件更新sql查询的知识,让您更了解使用条件更新sql查询数据的本质,同时也会涉及到如何更有效地JAVA-入库条件更新SQL相同ID库存数量增加、jquery–如何在复
在这里,我们将给大家分享关于使用条件更新 sql 查询的知识,让您更了解使用条件更新 sql 查询数据的本质,同时也会涉及到如何更有效地JAVA-入库条件更新SQL相同ID库存数量增加、jquery – 如何在复选框条件更改时使用ajax更新mysql数据库?、laravel 中使用条件查询的时候,会根据不同的情况使用不同的条件查询、mybatis使用条件分页查询的内容。
本文目录一览:- 使用条件更新 sql 查询(使用条件更新 sql 查询数据)
- JAVA-入库条件更新SQL相同ID库存数量增加
- jquery – 如何在复选框条件更改时使用ajax更新mysql数据库?
- laravel 中使用条件查询的时候,会根据不同的情况使用不同的条件查询
- mybatis使用条件分页查询
使用条件更新 sql 查询(使用条件更新 sql 查询数据)
如何解决使用条件更新 sql 查询?
我有两个表: 平均表
LSP Runid
ABC_XYZ 123
DEF_XYZ 456
数据表
LSP Runid
RECON_ABC_XYZ
RECON_DEF_XYZ
我的查询是:
UPDATE DATA INNER JOIN
AVERAGE
ON DATA.LSP = AVERAGE.LSP
SET DATA.Runid = AVERAGE.Runid
我无法更新我的数据表
解决方法
LSP 数据不匹配。您需要将 RECON_ 添加到 AVERAGE 表以匹配 DATA 表中的记录。假设它们都以 RECON_ 开头,您可以在 SQL Server 2012 +
中使用以下查询UPDATE DATA INNER JOIN
AVERAGE
ON DATA.LSP = CONCAT(''RECON_'',AVERAGE.LSP)
SET DATA.Runid = AVERAGE.Runid
JAVA-入库条件更新SQL相同ID库存数量增加
目录
前言:
正题:
数据库表设计:
一、Controller层
二、Service层
三、Dao层
前言:
在写更新语句时没有成功,总报下图错误,为防止再出现写更新语句时的语句错误,特此总结一篇关于条件更新并增加的SQL
之前的错误条件更新SQL,请注意!
String update_sql = "update tb_commodity set (?,?,?,?,?)where id = ?";
正题:
下图为业务需求
更改之后
主要是SQL语句的书写,但是入库需要判断是否有相同ID,相同的走更新SQL,不同直接Insert
数据库表设计:
一、Controller层
// 向库存表中插入数据
private void inputCommodity(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
int id = Integer.parseInt(req.getParameter("commodityId").toString());
double price = Double.parseDouble(req.getParameter("price").toString());
String forwardPage = managerPage;
String name = req.getParameter("name");
String specification = req.getParameter("specification");
String units = req.getParameter("units");
int stock = Integer.parseInt(req.getParameter("stock").toString());
Commodity commodity = new Commodity();
commodity.setId(id);
commodity.setPrice(price);
commodity.setName(name);
commodity.setUnits(units);
commodity.setSpecification(specification);
commodity.setStock(stock);
//进货管理添加:1.相同商品条码(更新仓库表走update)2.不同商品条码(直接添加走insert)
boolean booleann = supermarketService.inputCommodity(commodity);
if (booleann == false){
forwardPage = commodityPage;
}
else{
forwardPage = commodityPage;
}
List<Commodity> commodities = supermarketService.getCommodities();
RequestDispatcher view = req.getRequestDispatcher(forwardPage);
req.setAttribute("commodities", commodities);
view.forward(req, resp);
}
二、Service层
// 进货管理添加:1.相同商品条码(更新仓库表走update)2.不同商品条码(直接添加走insert)
public boolean inputCommodity(Commodity commodity){
// 先查询一下仓库表的数据
Commodity commodity1 = superMarketDao.getCommodity(commodity.getId());
// 如果相同进行更新
if (commodity1 !=null){
superMarketDao.updateCommodity(commodity);
return false;
}
// 商品条码不同直接进行添加
else{
superMarketDao.insertCommodity(commodity);
return true;
}
}
三、Dao层
这里主要介绍下更新的SQL,插入和查询很简单。
// 更新库存表---主要是添加货有相同ID把库存数量进行累加
public void updateCommodity(Commodity commodity){
// 只更新具有相同ID的 1.商品名称 2.规格等级 3.单价 4.售价--进行更新 5.数量进行累加
String update_sql = "update tb_commodity set name=?,specification=?,units=?,price=?,stock = stock+? where id = ? ";
Object[] update_paramValue = {commodity.getName(),commodity.getSpecification(),commodity.getUnits(),commodity.getPrice(),commodity.getStock(),commodity.getId()};
super.update(update_sql,update_paramValue);
}
jquery – 如何在复选框条件更改时使用ajax更新mysql数据库?
我有一个文章表,在客户端显示在行中.每篇文章都有一个唯一的ID,并包含一个复选框,用于指示是否将此文章选为收藏夹.如果它是收藏夹,则已选中复选框.如果没有,则取消选中.现在我需要js或jquery和ajax来更新数据库中的表,如果复选框条件更改特定于每一行.另一个挑战是我在cakePHP MVC环境中工作.
<script type="text/javascript" src="jquery-1.2.1.min.js"></script>
<script type="text/javascript">
function checkBox_click (id, favorite)
{
// see if checkBox is checked
if(favorite==1)
{
$.ajax({
type:'POST',
url:'check_favorite.PHP', // this external PHP file isn't connecting to MysqL db
data:'id= ' + id + '&favorite=1',
});
}// if
// the checkBox was unchecked
else
{
$.ajax({
type:'POST',
url:'check_favorite.PHP', // this external PHP file isn't connecting to MysqL db
data:'id= ' + id + '&favorite=0',
});
}//else
}
</script>
–html–这是一个foreach循环.
echo "<input type='checkBox' id='$rowid;' name='favorite' checked='checked' onclick='checkBox_click('id','favorite',this();' />";
else
echo "<input type='checkBox' id='$rowid;' name='favorite' onclick='checkBox_click('id','favorite',this.checked);' />";
-jax调用的-PHP文件 –
<?PHP
//Database Variables - with the variables entered it doesn't connect
$dbhost = 'localhost'; // usually localhost
$dbuser = 'username'; // database username
$dbpass = 'password'; // database password
//Establish connection to MysqL database
$con = @MysqL_connect($dbhost, $dbuser, $dbpass);
if (!$con)
die('Unable to connect.' . MysqL_error());
MysqL_select_db('devcake', $con);
// Get the variables.
$query = "UPDATE mytable SET favorite=".$_POST['favorite'] . "
WHERE id=".$_POST['id'] . ";";
MysqL_query($query);
MysqL_close($con);
?>
解决方法:
这是我使用的代码(感谢塞缪尔)
$('input[name=favorite]').live("click",function(){
var id = $(this).attr('id');
if($(this).attr('checked')) {
var favorite = 1;
} else {
var favorite = 0;
}
$.ajax({
type:'GET',
url:'favorites.PHP',
data:'id= ' + id + '&favorite='+favorite
});
//console.log('id: ' + id + ' Publico: '+publico + 'Value: '+value);
});
laravel 中使用条件查询的时候,会根据不同的情况使用不同的条件查询
laravel5.5新出了一个简便方法when($arg,fun1[,fun2])。当$arg为真的时候,执行闭包fun1,否则执行fun2(可选)
1 $myconsumption = $transaction->selectRaw(''business_name,business_id,sum(paid) as account,count(*) as times'')
2 ->where(''membership_openid'', ''='', $wxOpenId)//当前用户微信ID
3 ->where(''start_time'', ''>='', $start_time)//当前月的开始时间
4 ->where(''start_time'', ''<='', $end_time)//当前月的最后时间
5 ->where(''status'', ''='', 1)//交易类型成功的时候
6 ->groupBy(''business_name'',''business_id'')//根据商户名称,id分组(商户名称与商户ID一一对应)
7 ->when($params[''type''] == 1,function ($query){
8 $query->orderBy(''account'', ''desc'')->orderBy(''times'', ''desc'');//当type为1的时候 则排序为金额,次数
9 },function ($query){
10 $query->orderBy(''times'', ''desc'')->orderBy(''account'', ''desc'');//当type为2的时候 则排序为次数,金额
11 })
12 ->limit(5)
13 ->get();
源码路径:vendor\laravel\framework\src\Illuminate\Database\Concerns\BuildsQueries.php
/**
* Apply the callback''s query changes if the given "value" is true.
*
* @param mixed $value
* @param callable $callback
* @param callable $default
* @return mixed
*/
public function when($value, $callback, $default = null)
{
if ($value) {
return $callback($this, $value) ?: $this;
} elseif ($default) {
return $default($this, $value) ?: $this;
}
return $this;
}
分析源码可以得出:when会判断第一个参数的真与假,如果是真,则执行第一个callback,如果是假,则执行默认的方法
mybatis使用条件分页查询
@Override
public PageInfo<Student> findByCriteria(Integer stuno, String name) {
pageHelper.startPage(2,2);
StudentExample example = new StudentExample();
StudentExample.Criteria criteria = example.createCriteria();
//设置查询大于传入学号的数据
criteria.andStunoGreaterThan(stuno);
criteria.andNameLike("%"+name+"%");
Page<Student> students = (Page<Student>) studentMapper.selectByExample(example);
PageInfo<Student> pageInfo = new PageInfo<Student>(students);
return pageInfo;
}
对于pageInfo的使用不能直接将
studentMapper.selectByExample(example)强转为pageinfo而是要先从list类型转成page类型再将page类型转换成pageinfo类型
我们今天的关于使用条件更新 sql 查询和使用条件更新 sql 查询数据的分享已经告一段落,感谢您的关注,如果您想了解更多关于JAVA-入库条件更新SQL相同ID库存数量增加、jquery – 如何在复选框条件更改时使用ajax更新mysql数据库?、laravel 中使用条件查询的时候,会根据不同的情况使用不同的条件查询、mybatis使用条件分页查询的相关信息,请在本站查询。
本文标签: