sql mysql select 语句中引用变量

我现在利用SQL server链接了一个mysql数据库。
在写一个语句时,遇到困难,请指点一下,语句如下:
SELECT   *   FROM  OPENQUERY(MYSQL, 'select   *   from   table '  ) 
select a,b,c=(SELECT   *   FROM  OPENQUERY(MYSQL, 'select   count(*)   from   table where d=t1.a '  ) ) from table1 t1
就是这个“where d=t1.a”我不知道应该怎么写,总是报错。
我尝试过:where a='t1.a'    where a=''ta.a''   where a='"t1.a'"都不行

1个回答

肯定不行,因为子查询先执行了,才执行主查询,而子查询里看不到t1
方法是子查询就连接上 table1 然后 where

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
jdbc中无法识别sql语句中的变量
直接执行SQL没有问题 ``` SET @i :=- 1; SELECT date_format( DATE_SUB( '2019-08-13', INTERVAL ( @i := @i + 1 ) DAY ), '%Y-%m-%d' ) AS `time` FROM changegroup WHERE @i <= 10 ``` 但在java代码里报错,提示语法错误,希望各位码友指教,如何解决?
.net 怎么执行mysql 带变量的SQL查询语句
.net 怎么执行mysql 带变量的SQL查询语句,如下语句在.net中执行的话 会因为@符号的问题导致报错,求大神赐教 ``` SELECT a.id,a.name,t1.m_payNum ,@curRank=@curRank +1 as rank FROM s1_aoshinet.players t1 JOIN s1_aoshinet.player_attributes a ON t1.id = a.id,(SELECT @curRank:=0) c WHERE 1=1 ORDER BY m_payNum desc LIMIT 100 ```
关于mysql中sql语句where, select, order by与用户自定义变量的疑问
![图片说明](https://img-ask.csdn.net/upload/201711/19/1511075074_710533.png) ![图片说明](https://img-ask.csdn.net/upload/201711/19/1511075088_103033.png) ![图片说明](https://img-ask.csdn.net/upload/201711/19/1511075100_472607.png) ![图片说明](https://img-ask.csdn.net/upload/201711/19/1511075109_702279.png) 环境是mysql5.7 用的数据库是2017/11/17日从mysql官网下的sakila数据库,不知道为什么会出现这种现象。
mysql 存储过程 执行变量sql语句
set @sql = concat("select * from project where projectId in (", numProject, ")"); 上面这个@sql 如何执行
mysql 动态拼接SQL语句求大神解答
DELIMITER $$ CREATE PROCEDURE bb_HL_sum_product3 ( IN name VARCHAR(200) ) begin drop TABLE tmp_reasult; declare cal1 varchar(800) ; set cal1=" insert into tmp_reasult(产品名称,募集规模,已募额度,杠杆率,成立时间) select product_name,project_money,PROJECT_ORDER_MONEY,extend8,setup_date from t_product where delete_flag=0 " if(name<>"" ) begin #产品名称 set SQL_FOR_SELECT= concat(SQL_FOR_SELECT," "," and product_name like ","'","%name%","'") end PRINT cal1 EXECUTE cal1; EXECUTE( 'update tmp_reasult set 客户总数=tmp.s1 ' +'from t_contract_order, ' +'(select count(distinct CUSTOMER_SEED) as s1,product_name from t_contract_order ' +'group by product_name )tmp where tmp_reasult.产品名称=tmp.product_name ' ) DEALLOCATE PREPARE cal1 ; END$$ DELIMITER ; 这是我写的存储过程,但是在Navicat里面报错,估计是关于定义变量,进行拼装语句的写法有错了。请大神帮忙看看
PHP+MYSQL 搜索条件使用变量时双引号的运用
数据库表 : fcoa_cost有以下两个字段 cost_number char(10) cost_groupid mediumint(3) ``` $_SESSION['html_where'] = "WHERE cost_groupid = 2"; $_html_where = $_SESSION['html_where']; //分页模块 global $_pagenum,$_pagesize; _page("SELECT DISTINCT cost_number FROM fcoa_cost $_html_where",4); ``` 运行后,一直提示以下错误: WHERE cost_groupid = 2SQL执行失败!Unknown column 'cost_groupid' in 'where clause' 这个是什么原因呢?要如何修改这个SQL语句呢?谢谢! 以下是分页模块的代码: ``` /** * _page() 计算分页数 * @access public * @param string $_sql * @param int $_pagesize * @return void */ function _page($_sql,$_size){ global $_pagenum, $_pagesize, $_page, $_pageabsolute, $_num; if (isset($_GET['page'])){ $_page= $_GET['page']; if (empty($_page) || $_page <0 || !is_numeric($_page)){ $_page=1; } else { $_page = intval($_page); } } else { $_page=1; } $_pagesize = $_size; $_num = _num_rows(_query($_sql)); if ($_num == 0 ) { $_pageabsolute = 1; } else { $_pageabsolute = ceil($_num / $_pagesize); }; if ($_page > $_pageabsolute) { $_page = $_pageabsolute; } $_pagenum = ($_page - 1) * $_pagesize; } ```
程序员新手对于一段sql语句的疑问
题目是这样的: 查询出个人工资高于其所在部门平均工资的员工,列出这些员工的全部个人信息 表employees的结构: create table employees ( employee_id int primary key, //员工ID first_name varchar(25), last_name varchar(25), salary double, //工资 hired_date date, department_id int //所在部门ID ) 在看答案前,我自己写的sql语句: 第一种查询方法: ``` select e1.* from employees e1 where e1.salary> ( select avg(e2.salary) salary from employees e2 where e1.department_id=e2.department_id ) ``` 第二种查询方法: ``` select e1.* from employees e1, ( select department_id, avg(salary) salary from employees group by department_id ) e2 where e1.department_id=e2.department_id and e1.salary>e2.salary ``` **结果给出的答案简洁好多:** ``` select e1.* from employees as e1 where e1.salary > ( select AVG(e2.salary) from employees as e2 where e1.department_id=e2.department_id ) ``` 看到这个我明白了主查询语句的表别名e1就像成员变量一样可以在子查询中使用,不知道对不对。 但完全想不明白的是,答案的子查询只是用了where子句自连接了两张表的department_id,怎么实现的分组?这是个什么思路或者优化吗?原理是什么?
mysql存储过程中如何将查出来的结果集赋给一个变量
<div class="iteye-blog-content-contain" style="font-size: 14px;"> <p>DELIMITER $$<br>CREATE PROCEDURE p(OUT param INT)<br>    BEGIN<br> DECLARE X INT;<br> SELECT COUNT(NAME) INTO X FROM table WHERE NAME='jim';<br> SET param = X;<br>    END$$<br>DELIMITER ;</p> <p>其中的查询语句返回一个数字, 赋值给x .  现在如果把存储过程中的sql改为<span style="font-size: 12px; line-height: 1.5;">SELECT  *  INTO X FROM table';  赋值给x , x应该改为什么类型?</span></p> <p> </p> </div>
请问,为什么无法把变量循环输入数据库中呢,是SQL语句错误还是程序嵌套问题?
[code="java"]<?php $con = mysql_connect("localhost","root","5555555551"); //mysql_query("SET NAMES 'UTF-8'"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("zuobiao",$con); //选择数据库 for ($i=1;$i<=5;$i++){ $x= mysql_query("select x,y from t1 order by DrugSId asc limit 1,$i"); $rs = mysql_fetch_array($x); $cc=$rs['y'].",".$rs['x']; //echo $cc."<br>"; $url="https://maps.googleapis.com/maps/api/place/search/json?language=zh-CN&location=$cc&&radius=500&sensor=false&key=AIzaSyCxLAQfEbXSARI3UD7_Nkj0WbVvQqnQuX0"; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $body=curl_exec($curl); curl_close($curl); $place=json_decode($body,true); foreach ($place as $b){ foreach((array)$b as $c){ if(!is_array($c)) continue; $d=$c['name'].","; //echo $d; $sql=mysql_query("insert into t1(keywords) values ('$d')"); // echo $sql // or die ('SLQ Syntax error '.mysql_error()); if ($d == null){ continue;} } } } ?> [/code] 数据库结构如下 [img]http://dl.iteye.com/upload/attachment/0073/0323/41ad7c14-c43d-3877-9bcc-6603a329135f.jpg[/img] --------------------------------------- 如果直接输出$d,是正常的,可以获得一串地名,但是如果插入数据库就只能获得一串地名中的一项.请问哪个地方写错了,如何修改? 为方便各位高手调试,给出1-5之内的数据 [img]http://dl.iteye.com/upload/attachment/0073/0340/f7b747fd-9bf0-3a2b-bc77-e3298e7f7a71.jpg[/img]
sql语句出错,求大神帮忙解答
CREATE PROCEDURE test() BEGIN DECLARE fid int; DECLARE days int DEFAULT 1; DECLARE s int default 0; DECLARE company_code VARCHAR; DECLARE cursor_company CURSOR FOR SELECT company FROM test WHERE status = 3; DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET a=1; OPEN cursor_company; FETCH cursor_company INTO company_code; WHILE a<>1 DO IF company_code = 'DD' THEN SET days = 2; END IF; ELSEIF company_code ='ZD' THEN SET days = 5; END ELSEIF; ELSEIF company_code ='GG' THEN SET days = '8'; END ELSEIF; FETCH cursor_company INTO company_code; DECLARE cursor_name CURSOR FOR SELECT id FROM test WHERE UNIX_TIMESTAMP(check_time) < UNIX_TIMESTAMP(DATE_ADD(NOW(),INTERVAL -days DAY)); #设置一个终止标记 DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET s=1; #打开游标 OPEN cursor_name; #获取游标当前指针的记录,读取一行数据并传给变量stu FETCH cursor_name INTO fid; #开始循环,判断是否游标已经到达了最后作为循环条件 WHILE s <> 1 do UPDATE test SET status = 8 where id=fid; #读取下一行的数据 FETCH cursor_name INTO fid; END WHILE; #关闭游标 CLOSE cursor_name ; #语句执行结束 END WHILE; CLOSE cursor_company; END 表结构 id int check_time datetime status int company varchar 错误信息: [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '; DECLARE cursor_company CURSOR FOR SELECT company FROM test WHERE status =' at line 10 看了好久,可是感觉没有错误,不知道毛病出在哪里,求大神解答
Mysql 存储过程问题
大家好,我遇到一个 很诡异的问题 今天写了一个存储过程 / PROCEDURE `video_center`.`updateusercourse`(IN id VARCHAR(20),IN videoname VARCHAR(50),IN author_id INT(11),IN vedio_id INT(11),OUT mychr VARCHAR(200)) 这个只是代码的开始的一部分 /**用户的名字*/ DECLARE authorname VARCHAR(20); SELECT `name` INTO authorname FROM `vc_user` WHERE id=304633; SELECT CONCAT('better hope myVar is not null', 'author_id',authorname) INTO mychr; 以上只是部分代码 存储过程本身编译是通过的 但是问题是 我 用select into 给变量赋值的时候出现了 问题 SELECT `name` INTO authorname FROM `vc_user` WHERE id=304633; 首先这条sql 语句如果单独执行不赋值的话 是能查询出来值的 然后 使用这条sql 语句 给返回的值 赋值 可以怎么也付不了值 不知道什么原因,我用java 调用这个存储过程 返回的值始终是 null SELECT CONCAT('better hope myVar is not null', 'author_id',authorname) INTO mychr; 那位大牛给看看 这方面的问题 不胜感激。
mfc调用mysql数据库时,如何在listbox上逐行显示调用的数据库的表中的内容呢?
RT。 已经成功实现了在控件上按一下鼠标就能调用指定的数据库。 但是对于调用的数据库中的特定的表如何在listbox上逐行显示还是不知道怎么做。。。 其实已经查了博客园和CSDN等等了,但是没有讲的很清楚的。 唯一一个博客园给了代码,按照他的方法调试了下发现没声明两个变量(不知道啥意思啊) 博客园提供的代码经过我改进后如下,如果有人能看懂,希望能指出问题: (不知道ItemName和nCount分别代表什么,没有声明啊) ``` void CthirdstepDlg::OnBnClickedRealresearch() //按钮button的函数 { // TODO: 在此添加控件通知处理程序代码 //初始化数据库对象 pConn = mysql_init(NULL); //localhost:服务器地址,可以直接填入IP;root:账号; //123:密码;test:数据库名;3306:网络端口 if (!mysql_real_connect(pConn, "localhost", "root", "wtk123", "jeesite", 3306, NULL, 0)) { AfxMessageBox(_T("数据库连接失败!")); return; } else//连接成功则继续访问数据库,之后的相关操作代码基本是放在这里面的 { AfxMessageBox(_T("数据库连接成功!")); UpdateData(true); //设置数据库字符格式,解决中文乱码问题 mysql_query(pConn, "set names 'gb2312'"); int t; // 执行 sql 语句 char research_query[200]={0}; CString choose_name; m_researchname.GetWindowText(choose_name); //获取输入静态文本框的字符串 strcpy(research_query,select_head); strcat(research_query,"zd_resourse"); strcat(research_query," where name like '%"); strcat(research_query,choose_name); strcat(research_query,"%'"); strcat(research_query,""); t = mysql_query(pConn,research_query); res = mysql_store_result(pConn); while (res!=NULL) { if (NULL!=(row=mysql_fetch_row(res))) { if (row[0]!=NULL) { ItemName[nCount++]=row[0];//不知道ItemName和nCount分别代表什么,没有声明啊 m_Filelist.AddString(row[0]); } } else { break; } } // while(row = mysql_fetch_row(res)) // { // printf("%s %s\n",row[1],row[2]); // } mysql_free_result(res); mysql_close(pConn); } } UpdateData(false); mysql_close(pConn);//关闭Mysql连接 } ``` 我的大致思路就是先创建一个空表,然后用for循环从i=0开始,逐行调用AddString函数来显示,然而具体怎么操作就不知道了——希望懂的人能贴一下代码,感激不尽!!!
为什么 mysqli_fetch_array 自己的数据库可以获取数据,公司的数据库就读取不到数据?
本人使用mysql 连接mysql 数据库,通过 mysqli提供的 mysqli_fetch_array方法,把query到的结果集,转到数组中,如下 ``` $result = $mysqli->query("select * from wx_user where source='yunfeng' AND (subscribe_time>('$last_month')) and subscribe_time<'$endToday' "); $results = array(); while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { $results[] = $row; } $arr = json_encode($results,JSON_UNESCAPED_UNICODE); print_r ($arr); ``` 但是 在我的电脑上就能操作成功,然后把代码上传到服务器后(使用公司的数据库配置文件, 不过 select * 另外一个表是能成功的,就是这个 wx_user 这个表 ) 打印不出来。。。奇了怪了 求解- - 1. 我看都是 utf-8 数据库集 2. 然后我读取数据库文件之后 也 header("Content-type: text/html; charset=utf-8"); 3. sql 语句的变量能打印出来
mysql 自定义函数一直报错语法有问题,找不哪里错了,求大神帮忙
函数代码如下: 问题: 1.保存是报错变量申明有问题(其他函数这样申明变量没出过问题), ![图片说明](https://img-ask.csdn.net/upload/201811/20/1542678162_115595.png) 2. 当把报错的变量申明删掉之后又会,又会报其他语句错误(这语句单独提出来运行是没问题的) ![图片说明](https://img-ask.csdn.net/upload/201811/20/1542678225_736322.png) 我觉应该可能不是那个语句的问题,第一写sql函数的没有定义函数类型,一直报错某个句子语法有问题,当我定义了类函数类型(之前报错这个句子没有做任何修改)之后就没问题 CREATE DEFINER=`root`@`localhost` FUNCTION `etccalcute`(`date_start` datetime,`date_end` datetime,car_id varchar(7)) RETURNS double MODIFIES SQL DATA BEGIN declare etc_sum double; declare dis_sum double; declare detc double(3,2); declare date_s datetime; declare date_e datatime; declare n int; declare m int; truncate table etc_base; insert into etc_base(date_delivery_required,project,distance_real) select date_delivery_required,project,distance_real from orders where date_delivery_required between date_start and date_end and car_number=car_id order by date_delivery_required asc; select count(distinct precject) from etc_base into n; if(n=1) begin select max(id) from etc_base into m; select date_delivery_required from etc_base where id=1 into date_s; select date_delivery_required from etc_base where id=m-1 into date_e; select sum(consumpation_amount) from etc where consumpation_time between date_s and date_e and car=car_id into etc_sum; select sum(distance_real) from etc_base where id between 1 and m-1 into dis_sum; set detc=etc_sum/dis_sum; RETURN detc; end else BEGIN RETURN -1 END END;
在调用存储过程时传入值不会被解析
if(!$is_exist2){ $sql_page=" create procedure page_art(in off int(10),in page_size int(10)) BEGIN select id,title,addtime,type from cj_art where type=9 order by addtime desc limit off,page_size; END "; //建立存储过程 mysql_query($sql_page); } //调用分页存储过程,传递参数 $sql = 'call page_art($off,$page_size)'; echo $sql; $res = mysql_query($sql); 在以上代码中,我传入的变量$off,$page_size不会解析成数字(这个在前面已经定义好了的),然后mysql_query对sql语句的执行就没有成功,返回的是false;我想要通过调用这个过程来做前台分页,现在就卡在这里了,就大神帮忙解答!!!!!!!!!!!!!!!!!!!!!!!!!
jdbc结果集查不到数据的相关问题
package com.test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Scanner; public class TestMain { public static void main(String[] args) throws ClassNotFoundException, SQLException { Scanner inputScanner=new Scanner(System.in); String uname=inputScanner.nextLine(); String upass=inputScanner.nextLine(); Class.forName("org.gjt.mm.mysql.Driver"); Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/yt", "root", "yangting"); Statement stmt=conn.createStatement(); ResultSet rs=stmt.executeQuery("select * from t_user where uname=' "+uname+" ' and upass=' "+upass+" ' "); System.out.println(rs.next()); stmt.close(); conn.close(); } } 数据表里对应的用户名和密码为 dmc 和 123 如果从控制台输入dmc 和 123,打印结果为false 控制台输入dmc 和 123' or 321 ,打印结果为true 如果sql 语句中变量uname 和 upass 换成常量,打印结果为true 有大神知道是什么原因吗
在Java中怎么在一个主菜单系统中调用已经写好的一个class
这个是主菜单中一部分的代码,然后在case2中定义了一个新的方法叫做 Moviemain()的方法。 ``` switch (input) { case 1: doLogin(); //定义了一个doLogin方法 break; case 2: Moviemain(); System.out.println("电影菜单显示"); break; case 3: viewMyTicket(); break; case 4: System.out.println("退出"); break; default: break; } } private void Moviemain() { // TODO Auto-generated method stub System.out.println(); } ``` ``` package edu.jmi.db; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; /* * MovieDAO是为了 * 实现怎么从Java中调取数据库内容,同时在这个Java中可以显示出数据库的信息。 */ public class MovieDAO { public static void main(String[] args) throws Exception { //链接至数据库 String URL="jdbc:mysql://127.0.0.1:3306/ticketdb?useUnicode=true&characterEncoding=utf8&useSSL=false"; Connection con = null; try { Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection(URL,"root","123456"); Statement state = con.createStatement(); String sql = "select * from Movie"; ResultSet rs = state.executeQuery(sql); //将SQL语句传至数据库,返回的值为一个字符集用一个变量接收 while(rs.next()) { System.out.println(rs.getString(1)+" "+rs.getString(2)+" "+rs.getString(3)+" "+rs.getString(4)+" "+rs.getString(5)); /* * getString(n)获取第n列的内容,数据库中的列数是从1开始的,要在Java中实现输出五列代码 */ } con.close(); } finally { } } } ``` 这个是怎么用Java调用数据库。 同时,关于这个电影票的订购系统,有木有大佬可以给点意见的? ![图片说明](https://img-ask.csdn.net/upload/201906/27/1561598255_1358.png) ![图片说明](https://img-ask.csdn.net/upload/201906/27/1561598277_271716.png)
创建管理表记录MYSQL自增自减问题
1.功能就是自动添加删除分区,并记录到管理表FjJk_Partition_Manager里包括哪些表有分区、分区名称、开始时间、间隔天数、分区数等,刚学习代码的小白,参考了下博客的代码后自己瞎改成这样,应该逻辑跟语句有大问题。 下面是代码: create table FjJk_Partition_Manager ( TABLE_NAME VARCHAR(30), PARTITION_NAME VARCHAR(30), BEGIN_TIME datetime DEFAULT NULL, INTERVAL_DAYS INT, PARTITION_SUM INT ) CREATE TABLE sales ( money int(11) NOT NULL, date TIMESTAMP ) ALTER TABLE sales PARTITION BY RANGE (UNIX_TIMESTAMP(date))( PARTITION jk20190421 VALUES LESS THAN (UNIX_TIMESTAMP('2019-04-21')), PARTITION jk20190422 VALUES LESS THAN (UNIX_TIMESTAMP('2019-04-22')), PARTITION jk20190423 VALUES LESS THAN (UNIX_TIMESTAMP('2019-04-23')), PARTITION jk20190424 VALUES LESS THAN (UNIX_TIMESTAMP('2019-04-24')), PARTITION jk20190425 VALUES LESS THAN (UNIX_TIMESTAMP('2019-04-25')), PARTITION jk20190426 VALUES LESS THAN (UNIX_TIMESTAMP('2019-04-26')), PARTITION jk20190427 VALUES LESS THAN (UNIX_TIMESTAMP('2019-04-27')) ) INSERT INTO sales VALUES(1066,'2019-04-19 15:20:59'); INSERT INTO sales VALUES(1088,'2019-04-20 18:20:59'); INSERT INTO sales VALUES(1066,'2019-04-21 17:20:59'); INSERT INTO sales VALUES(1099,'2019-04-22 20:21:59'); INSERT INTO sales VALUES(1088,'2019-04-23 18:20:59'); INSERT INTO sales VALUES(1066,'2019-04-24 12:30:59'); INSERT INTO sales VALUES(1066,'2019-04-25 21:20:59'); INSERT INTO sales VALUES(1066,'2019-04-26 22:30:59'); CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_add_drop_partition`(IN v_tablename VARCHAR(50),v_drop_interval INT,v_add_interval INT) BEGIN -- 传入变量: v_drop_interval 删除日 v_add_interval 添加日 DECLARE v_add_interval_1 INT; DECLARE table_name varchar(30); DECLARE udata TIMESTAMP; SET table_name='FjJk_Partition_Manager'; SET v_add_interval_1=v_add_interval+1; START TRANSACTION; SET @udata=CONCAT('select data from',v_tablename); SET @c_add= CONCAT('jk',DATE_FORMAT(DATE_ADD(NOW(),INTERVAL v_add_interval DAY),'%Y%m%d')); SET @c_drop=CONCAT('jk',DATE_FORMAT(DATE_SUB(NOW(),INTERVAL v_drop_interval DAY),'%Y%m%d')); SET @s=CONCAT('alter table ',v_tablename,' drop partition ', @c_drop); SET @t=CONCAT('alter table ',v_tablename,' add partition ','(','partition ', @c_add, ' VALUES LESS THAN','(',UNIX_TIMESTAMP(DATE(DATE_ADD(NOW(),INTERVAL v_add_interval_1 DAY))),')',')'); SET @i=CONCAT('insert into ',table_name,' VALUES','(',v_tablename,@c_add,@udata, TimeStampDiff(DAY,@udata,DATE_FORMAT(now(), '%Y-%m-%d')),count(v_tablename),')'); SELECT @s; PREPARE stmt FROM @s; EXECUTE stmt; DEALLOCATE PREPARE stmt; SELECT @t; PREPARE stmt FROM @t; EXECUTE stmt; DEALLOCATE PREPARE stmt; SELECT @i; PREPARE stmt FROM @i; EXECUTE stmt; COMMIT; END CREATE DEFINER=`root`@`localhost` EVENT `NewEvent` ON SCHEDULE EVERY 1 DAY STARTS '2019-04-27 01:20:00' ON COMPLETION PRESERVE ENABLE DO BEGIN CALL proc_add_drop_partition('sales',7,1); END;
resultSet.getString( )搜索数据库方法问题
package com.buy.bean.coin; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import com.buy.bean.comm.database.DBConnect; public class UsercoinSelectBean { //查询用户信息的方法 public String selectUsercoin(String ID, int i) { //声明查询语句的字符串类型变量 String condition = null; if(i == 0) { //如果参数i为0表示查询用户电子货币余额 condition = "select coin from user where id = " + ID; } else if(i == 1) { //如果参数i为1表示查询用户已花费的电子货币 condition = "select consume from user where id = " + ID; } else if(i == 2) { //如果参数i为2表示查询用户累计的电子货币 condition = "select coin + consume from user where id = " + ID; } else if(i == 3) { //如果参数i为3表示查询用户的姓名 condition = "select name from user where id = " + ID; } else if(i == 4) { //如果参数i为4表示查询用户的类型 condition = "select type from user where id = " + ID; } ResultSet rs = null; Statement sql = null; String str = new String(); try { int coin; //获得数据库连接 Connection conn = DBConnect.getConnection(); //建立Statement sql = conn.createStatement(); //执行数据库查询 rs = sql.executeQuery(condition); //取结果集记录中的第一个字符 while(rs.next()) { str = rs.getString(1); } //将取得的字符串转化成整型 coin = Integer.parseInt(str); //关闭结果集 rs.close(); //关闭Statement sql.close(); //关闭连接 conn.close(); } catch (Exception e) { //如果查询错误 return new String("can not select"); } //返回结果 return str; } } ``` ``` 用resultSet.getString( )方法 name和type都是varchar类型的 前面几个整型都能打印出来 varchar类型的打印不出来 查询语句正常 放入数据库里能检索到 求教什么问题。
Kafka实战(三) - Kafka的自我修养与定位
Apache Kafka是消息引擎系统,也是一个分布式流处理平台(Distributed Streaming Platform) Kafka是LinkedIn公司内部孵化的项目。LinkedIn最开始有强烈的数据强实时处理方面的需求,其内部的诸多子系统要执行多种类型的数据处理与分析,主要包括业务系统和应用程序性能监控,以及用户行为数据处理等。 遇到的主要问题: 数据正确性不足 数据的收集主要...
volatile 与 synchronize 详解
Java支持多个线程同时访问一个对象或者对象的成员变量,由于每个线程可以拥有这个变量的拷贝(虽然对象以及成员变量分配的内存是在共享内存中的,但是每个执行的线程还是可以拥有一份拷贝,这样做的目的是加速程序的执行,这是现代多核处理器的一个显著特性),所以程序在执行过程中,一个线程看到的变量并不一定是最新的。 volatile 关键字volatile可以用来修饰字段(成员变量),就是告知程序任何对该变量...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
有哪些让程序员受益终生的建议
从业五年多,辗转两个大厂,出过书,创过业,从技术小白成长为基层管理,联合几个业内大牛回答下这个问题,希望能帮到大家,记得帮我点赞哦。 敲黑板!!!读了这篇文章,你将知道如何才能进大厂,如何实现财务自由,如何在工作中游刃有余,这篇文章很长,但绝对是精品,记得帮我点赞哦!!!! 一腔肺腑之言,能看进去多少,就看你自己了!!! 目录: 在校生篇: 为什么要尽量进大厂? 如何选择语言及方...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
GitHub开源史上最大规模中文知识图谱
近日,一直致力于知识图谱研究的 OwnThink 平台在 Github 上开源了史上最大规模 1.4 亿中文知识图谱,其中数据是以(实体、属性、值),(实体、关系、实体)混合的形式组织,数据格式采用 csv 格式。 到目前为止,OwnThink 项目开放了对话机器人、知识图谱、语义理解、自然语言处理工具。知识图谱融合了两千五百多万的实体,拥有亿级别的实体属性关系,机器人采用了基于知识图谱的语义感...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
微信支付崩溃了,但是更让马化腾和张小龙崩溃的竟然是……
loonggg读完需要3分钟速读仅需1分钟事件还得还原到昨天晚上,10 月 29 日晚上 20:09-21:14 之间,微信支付发生故障,全国微信支付交易无法正常进行。然...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小型人工智障。 知识可以运用在不同地方,不一定非是天气预报。
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
英特尔不为人知的 B 面
从 PC 时代至今,众人只知在 CPU、GPU、XPU、制程、工艺等战场中,英特尔在与同行硬件芯片制造商们的竞争中杀出重围,且在不断的成长进化中,成为全球知名的半导体公司。殊不知,在「刚硬」的背后,英特尔「柔性」的软件早已经做到了全方位的支持与支撑,并持续发挥独特的生态价值,推动产业合作共赢。 而对于这一不知人知的 B 面,很多人将其称之为英特尔隐形的翅膀,虽低调,但是影响力却不容小觑。 那么,在...
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
刷了几千道算法题,这些我私藏的刷题网站都在这里了!
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活… 然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看...
白话阿里巴巴Java开发手册高级篇
不久前,阿里巴巴发布了《阿里巴巴Java开发手册》,总结了阿里巴巴内部实际项目开发过程中开发人员应该遵守的研发流程规范,这些流程规范在一定程度上能够保证最终的项目交付质量,通过在时间中总结模式,并推广给广大开发人员,来避免研发人员在实践中容易犯的错误,确保最终在大规模协作的项目中达成既定目标。 无独有偶,笔者去年在公司里负责升级和制定研发流程、设计模板、设计标准、代码标准等规范,并在实际工作中进行...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
Nginx 原理和架构
Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。 Nginx 的整体架构 Nginx 里有一个 master 进程和多个 worker 进程。master 进程并不处理网络请求,主要负责调度工作进程:加载配置、启动工作进程及非停升级。worker 进程负责处...
YouTube排名第一的励志英文演讲《Dream(梦想)》
Idon’t know what that dream is that you have, I don't care how disappointing it might have been as you've been working toward that dream,but that dream that you’re holding in your mind, that it’s po...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
相关热词 c#委托 逆变与协变 c#新建一个项目 c#获取dll文件路径 c#子窗体调用主窗体事件 c# 拷贝目录 c# 调用cef 网页填表c#源代码 c#部署端口监听项目、 c#接口中的属性使用方法 c# 昨天
立即提问