GVKun编程网logo

使用条件更新 sql 查询(使用条件更新 sql 查询数据)

11

在这里,我们将给大家分享关于使用条件更新sql查询的知识,让您更了解使用条件更新sql查询数据的本质,同时也会涉及到如何更有效地JAVA-入库条件更新SQL相同ID库存数量增加、jquery–如何在复

在这里,我们将给大家分享关于使用条件更新 sql 查询的知识,让您更了解使用条件更新 sql 查询数据的本质,同时也会涉及到如何更有效地JAVA-入库条件更新SQL相同ID库存数量增加、jquery – 如何在复选框条件更改时使用ajax更新mysql数据库?、laravel 中使用条件查询的时候,会根据不同的情况使用不同的条件查询、mybatis使用条件分页查询的内容。

本文目录一览:

使用条件更新 sql 查询(使用条件更新 sql 查询数据)

使用条件更新 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库存数量增加

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数据库?

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 + '&amp;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 + '&amp;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 中使用条件查询的时候,会根据不同的情况使用不同的条件查询

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使用条件分页查询

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使用条件分页查询的相关信息,请在本站查询。

本文标签: