this.$refs['cascaderRefArea'].inputValue = '编辑时你的值'这可以解决。随便赋值什么都可以
霹雳青
sql问题之where条件的优先级
sql问题之where条件的优先级
如果我一个查询里边过滤,where 子句用了datetime > 2015-01 and sex = 1
比如数据有100万肯定是先用datetime过滤要滤到1大批数据了
假如datetime 过滤后,有10万数据符合条件
先用sex,有50万数据符合条件.
我肯定是希望先用datetime来过滤,然后再用sex过滤.
还是我根本不用考虑,系统底层无差别?
我在用sql server.
霹雳青
mysql 怎么统计七天内的订单,和每日的订单啊?
我的订单表使用的create_time时间戳来表示下单时间的,如果取当日订单好计算,但是如果取七天内的订单呢?
如果我想要得到七天内的每一天的订单数量又该怎么计算呢?真是郁闷,希望大神解答下哈,谢谢了。
霹雳青
mysql PHP 如何实现空间距离的检索 计算配送范围
我觉得这似乎是一个新的领域,用sql查询能计算空间坐标,返回指定范围内的点吗?类似,美团,饿了么那样的,根据餐厅的配送范围检索可以配送的餐厅;
正是因为地图API解决不了我的问题:
https://segmentfault.com/q/1010000004708...
https://segmentfault.com/q/1010000004586...
所以我就想自己解决这个问题了,需要有专门的服务软件吗?mysql 有个geometry类型字段可以用吗?
写sql查询应该会很有性能问题吧,感觉怪怪的。
求有经验的大神提供思路,谢谢!
霹雳青
现在我在学习MySQL,问问怎么复制粘贴数据库.
大家好,是这么回事:
就是我白天在公司上班,其实大多数时候都很清闲,我就利用这些时间自学坐在那里学MySQL,PHP...
学php 和 js html 的时候还好说,我把文件传到 快盘,回到家同步一下,再复制出来,就可以继续自学;
可是我学MySQL的时候,我把白天在公司做好的表,库 上传到快盘,拿回家放到 *mysqldata 文件夹下的时候,居然都不能用!提示:Table * doesn't exist
我百度查了是因为数据库不存在这个表,我就想问问,要是复制数据库文件,换个电脑继续用的时候,都怎么操作?
我用的windows 系统,谢谢大家解答.
告诉我个命令,我自己去百度搜就行,比如你告诉我 CREATE TABLE ,DROP TABLE
霹雳青
sql怎么随机取50条数据?
MySQL从一张表怎么随机取50条数据?
霹雳青
SQLAlchemy中模糊查询,如何like多个关键字
比如需要找出u_name中既有“三”又有“猫”的记录:SQL原生语句如下:
SELECT * FROM [user] WHERE u_name LIKE '%三%' AND u_name LIKE '%猫%'
请问这个如何在 SQLAlchemy 中实现呢
霹雳青
【MySQL】求一个SQL语句的优化
select *
from yq_product
where instr(concat(title,',',metakey,',',metadesc,',',cat_name,',',brand_name), '品')
order by instr(concat(title,',',metakey,',',metadesc,',',cat_name,',',brand_name), '品')就是 instr(concat(title,',',metakey,',',metadesc,',',cat_name,',',brand_name), '品') 这一句,有办法不重复吗?
试过这样不行:
select *, instr(concat(title,',',metakey,',',metadesc,',',cat_name,',',brand_name), '品') as search
from yq_product
where search>0
order by search
霹雳青
为什么在函数内用parseExpr执行会报SQL context is not initialized yet
在DolphinDB GUI内执行下面代码:def yoy_continuous_validation(X, threshold, validation_way, continuous_len){
if (not(string(validation_way) in ['>','>=','<','<=','='])){
return NULL
}
m = parseExpr("iif(msum(iif(yoy(X)" + iif(string(validation_way) == "=","==",validation_way) + "threshold,1,0),continuous_len) == continuous_len,1,0)").eval()
return m
}报错SQL context is not initialized yet,parseExpr拼接的语句为iif(msum(iif(yoy(X)>threshold,1,0),continuous_len) == continuous_len,1,0)直接执行不会报错,是什么原因?
霹雳青
为什么计算结果返回-0
我在DolphinDB GUI中执行下列代码:x=table(103.6994 103.6994 as a,`a`a as b)
select 100-(first(a*100)/last(a)) as res from x group by b这个计算结果给我返回了-0,为什么会带一个负号?
霹雳青
怎么找到第一个满足条件的行
根据reg_code,address去统计interval的累积值,当累积值到一个设定的常量值,比如86400,只要累计值刚刚等于或者大于这个常量值得时候返回对应的date_time。在DolphinDB表中的数据如下图所示。
霹雳青
dolphindb中如何设置某个数据节点单独的参数配置?
我现在是15个核心两个节点,那么一个节点7核心一个节点8核心,在哪里配置中进行配置单独的分配,cluster.cfg中的workerNum好像是统一分配的,应该怎么做呢?
霹雳青
请问下dolphindb中用不同的python去run同样的脚本,里面有相同的内存表定义,会互相影响吗?
我的脚本如下 这个内存表名mt=loadTable("dfs://stockL2","mdl_4_3_0"),mt是进程内有效的是么?就是说我用另一个python去run同一个script,不会互相影响?
霹雳青
请教一下在dolphindb中,那么有什么办法可以对表和矩阵相互转换吗?
在dolphindb中我想把表和矩阵相互转换应该怎么做呢?
霹雳青
删除dolphindb表的指定行
想要删除表中某一列为空的记录,但是似乎不支持,报告异常 It is not allowed to delete rows from tables other than basic in-memory tables and segmented in-memory tables.
dolphindb应该如何删除单行记录?
delete from trades where isNull(symbol)
霹雳青
请问在dolphindb中where id = id返回全部数据,对吗
DolphinDB版本:1.10.3 2020.03.30代码如下,其中有一个表的字段名是id,有一个变量,变量名也是id :
id = 1
t=table(1 2 4 8 4 2 7 1 as id, 10 20 40 80 40 20 70 10 as val)
select * from t where id = id
上述语句执行后返回全部数据,而不是id=1的那些记录,为什么?
霹雳青
如何让DolphinDB内存表整个表格的null都变为0
nullFill好像不支持整个表格。如果要让整个表格的null都变为0,是不是只能用
loop/each:loop(def(tab,col){tab[col].nullFill!(0)}{tab_res}, tab_res.colNames())
霹雳青
请问MYSQL里如何取得某个字段除了后三位的字符串
比如a
123001
3405002
56700003
我想取得除了后三位001,002,003的前面的数字。要怎么截取?PS:只能MYSQL操作
霹雳青
DolphinDB中怎么得到日期的月份
取一个日期的月份,month取出来的格式是如下图yf列这样的,比如month(1990.06.30T00:00:00.000000000),取出来为1990.06M,但我只想得到12,请问要调用哪个命令?
霹雳青
为什么 MySQL 不用我期望的索引?
我们的 MySQL(Percona Server) 数据库有一个很大的表,1000多万条记录,我发现有很多类似的慢查询,40来秒: SELECT col1, Seller, col3, col4, Id, col5
FROM table1
WHERE Seller = 346761
AND col1 IN (2, 3, 4)
AND col3 = 1
AND col4 NOT IN (5,6,7)
ORDER BY Id DESC
LIMIT 0, 20;我发现在 Seller, and col1, col3, col4 这几个列已经建了独立索引。 Id 是主键。EXPLAIN 显示 MySQL 查询这个语句的时候使用了 Primary key 索引, 而不是 Seller。+----+-------------+------------------+-------+--------------------+---------+---------+------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+------------------+-------+--------------------+---------+---------+------+------+-------------+
| 1 | SIMPLE | trans_audit_list | index | Seller,AuditStatus | PRIMARY | 8 | NULL | 1483 | Using where |
+----+-------------+------------------+-------+--------------------+---------+---------+------+------+-------------+我感觉这个查询如果用 Seller 上的索引会很快,果然,我强制 force index (Seller), 就只用 0.7 秒。
为什么 MySQL 不用 Seller 上的索引,感觉使用这个索引是很显然的。是不是因为指定了 order by Id, Id 是主键,所以 MySQL 就用主键索引了?另外:我发现如果不加上 Limit 语句,就会使用 Seller 索引,查询会非常快。
霹雳青
请问 SQL (mysql) 如何查询相同 ID下某一列全部相同的 sql 语句怎么写?
表名称 为:egg_school_en_user_data_word_log
例如以上的图相同ID 'wextid' 下 某一列 'result' 全部等于 error 的
正确将查询出 wextid 为 5528 的数据 而 wextid 为 2628 的数据 因为其中有一行 'result' 为 correct 所有不应该被查处。
我的目的 是指 在 wextid 相同情况下,result 必须全部为 error 的值。 我需要的是 如果上图中 第 5行(ID为730) 的 result 变成error 那么将查询出 5528,2628 个值 的SQL语句。
霹雳青
sudo /etc/init.d/mysql stop 与sudo stop mysql的区别?
一开始我认为其作用都是相同的,但是看到控制台输出的内容信息不一致,我觉得应该作用不一样?那位大神指点下。http://blog.csdn.net/penglei0901/article/details/28634557这个连接的说法不敢赞同。
霹雳青
单表分类取最值的SQL如何实现效率最高?
现有实际需求如下:表TBL(userid,logintime,dat),userid为用户名(KEY),logintime为登录时间,dat为某些数据,请写SQL语句返回每个有记录的用户在最后一次登录所产生的userid,dat结果集。这个问题其实是一个广谱性的问题,在很多场景下会遇到。那么对于这类单表分类(userid相同的视为一类)取最值(或者是最大两个或三个值)的问题,如何设计SQL才能使效率最高?
霹雳青
mysql为什么用了子查询后,主查询没走主键索引
霹雳青
如何设计 用户钱包金额收支记录表?
我想做一个对于 用户钱包金额收支情况记录的表就是对于 money1(买家金额)money2(买家冻结金额) money3(卖家金额)money4(卖家冻结金额) 这个四个字段,所有的加减都要有个记录,该怎么设计表好呢?有什么必须的字段,要求?求经验丰富的人推荐下设计方案?
能不能根据数据库的变动做一个记录?就是当用户表的 金额字段发生变化时,把其变化存入一个新的表里?我用的是MySQL数据库,是不是得使用触发器?
霹雳青
JAVA 商城商品 sku 数据库怎么保存?
分类不同,属性组可能不同
比如手机:颜色、版本、容量
比如衣服:颜色、尺码
还有些可能没属性
这样,SKU数据库应该怎么设计?
skuId(sku ID)、goodId(商品ID)、price(价格)、quantity(库存)
现在就是属性怎么保存?
主要是怎么关联:
我想到的是
sku再加上全部属性组字段,一个颜色ID字段、一个版本ID字段、一个容量ID字段、一个尺码ID字段,没有的为0
这样下来一条sku记录就很多没用字段了,感觉sku一般不应该这么设计吧。还有一个问题就是万一要多加一个属性组就要修改数据库和程序,改动会很大
求高手给一个思路
还有一个问题就是,这些属性组里面肯能就颜色还有一个颜色值字段,不像其他就一个ID一个组ID一个名称,是不是应该吧颜色这个组分离出来,我现在做的是颜色这个组再关联一个数据库表,这个还没考虑图片,因为颜色还有一个图片
霹雳青
分类信息的多层级分类是怎样设计的?
不同的信息,比如招聘、房产等,可以自由的定义不同字段,每个字段下可以定义数量不等的字段值,可以通过多个字段来筛选信息,这样的数据库是怎样设计的?我是这样想的:定义一个category表,来分类房产、招聘等不同的分类,
定义一个info标来存储信息,有id,category_id等,
定义一个attribute_name表来存储属性字段,比如图中的区域、租金、厅室、方式、品牌等,
定义一个attribute_value表来存储属性值,id,attribute_name_id,value等字段,比如这里的区域属性的朝阳、海淀、东城等。不知道该怎样将信息和属性、属性值联系起来,达到同时通过多个属性来筛选信息?比如这里图中通过区域、租金、厅室、方式等来筛选信息。不知道这样的多维分类是怎样设计的,求大神指点下,谢谢。
霹雳青
商品表 数据库设计
目前要做一个手机版商城, 在设计数据库时遇到该问题..比如一件衣服,这件衣服有红色、白色、蓝色,
红色又有X,XL,XLL尺码,
白色有S,M,X,XL
蓝色有M,X,XL对于自己设计的数据库一直感到不太满意,望各路大神,赐教.此问题的引申 一般商场不可能只出售衣服 , 还有会有电子产品等等乱七八糟的 后期扩展性 要怎么办呢?
霹雳青
mysql查询语句优化,请问这条语句有还能再优化吗?
需求是查询最近100天的图书浏览数据,根据浏览的图书id分组查询统计前23的查阅量排序
语句为:
SELECT ip_times.query ,books.name,books.cover, COUNT(books.id) AS VALUE FROM ip_times,books WHERE (ip_times.path='/GetBookById' AND books.id=ip_times.query AND DATE_SUB(CURDATE(), INTERVAL 100 DAY) <= DATE(ip_times.date)) GROUP BY ip_times.query ORDER BY VALUE DESC LIMIT 23
问题出现的环境背景及自己尝试过哪些方法
我试着修改COUNT(*)为COUNT(books.id),减少到了5秒,但是还想再快点,请问有什么更好的方式呢?谢谢
霹雳青
Mysql主从复制和集群有何区别?分别适用什么场景?
redis主从复制和集群区别很明显,前者是为了提供冗余高可用,后者是为了将数据分散保存,不同的redis节点有不同的数据。
但是mysql主从和集群好像节点都有一样的数据,和redis主从/集群之间的差别完全不同,那是mysql主从和集群分别适用于什么场景?
霹雳青
mysql 嵌套 case when 的问题?
sql语句如下:
SELECT
a.uc_id id,
(
CASE WHEN a.uc_realname IS NULL OR a.uc_realname =''
THEN a.uc_sys_name ELSE a.uc_realname END
) AS realName,
a.uc_register_time registerTime,
a.uc_phone phone,
a.uc_last_login_time lastLoginTime,
(
CASE
WHEN LEFT (a.uc_code, 2) = '00' THEN
'地推会员'
ELSE
'普通会员'
END
) type,
(
CASE
WHEN a.uc_flag = 0 THEN
'未确认'
WHEN a.uc_flag = 1 THEN
'有效'
WHEN a.uc_flag = 2 THEN
'无效'
END
) flagName,
b.post_status,
(
CASE
WHEN b.post_status IS NULL OR b.post_status = ''
THEN
(
CASE
WHEN tmp.ctime IS NOT NULL AND tmp.ctime <> ''
THEN '新投递'
ELSE '暂无' END
)
ELSE
(
CASE
WHEN b.post_status = 0
THEN '已预约面试'
WHEN b.post_status = 1
THEN '面试成功'
WHEN b.post_status = 2
THEN '已拒绝'
WHEN b.post_status = 3
THEN '已失效'
ELSE '未知' END
)
END
) `status`,
tmp.ctime,
b.memo,
c.realname manageRealName,
c.id manageUseId
FROM
bco_uc.uc_app_user a
LEFT JOIN bco_web.web_crm_dz b ON a.uc_id = b.app_user_id
LEFT JOIN bco_web.web_manage_user c ON b.manage_user_id=c.id
LEFT JOIN (
SELECT
t.uc_id,
MAX(t1.create_time) ctime
FROM
bco_uc.uc_app_user t
LEFT JOIN bco_jobpost.job_position_apply t1 ON t.uc_id = t1.user_id COLLATE utf8mb4_unicode_ci
WHERE t1.status='draft' GROUP BY t.uc_id
) tmp ON a.uc_id = tmp.uc_id
查询结果如下:
有没有发现case when的最外层的判断没有生效,这是为什么?
霹雳青
怎么用自定义泛型实现下面的代码,怎么优化
有两个类 结构差不多,都在Order类里面用到,而且方法里面逻辑也差不多,怎么优化
因为Customer和Client不同类型,所以写了两个方法,只是传的参数不一样
自定义泛型可以实现么,怎么写比较好,或者其它有什么方式
谢谢
public class Customer {
private String location;
private Boolean isDone;
// get set toString ...
}
public class Client {
private String location;
private Boolean isDone;
// get set toString ...
}
public class Order{public void execute_customer(Customer customer){
if(customer.getDone()){
customer.setLocation("hongkong");
}
System.out.println("result: "+ customer);
}
public void execute_client(Client client){
if(client.getDone()){
client.setLocation("hongkong");
}
System.out.println("result: " + client);
}
}
============================= 情况二 =====================================
public List<Customer> retrieveEntityRecords(RequestParam request) {
List<String> ids = request.getId();
String location = request.getLocation();
boolean idsCk = CollectionUtils.isNotEmpty(ids) && ids.size() > 0;
boolean locationCk = !StringUtils.isEmpty(location);
List<Customer> result;
try {
if (idsCk) {
if (locationCk) {
// use [ids location] query db
result=customerRepository.findxxx(ids,location);
} else {
// use [ids] query db
result=customerRepository.findxxx(ids);
}
} else {
if (locationCk) {
// use [location] query db
result=customerRepository.findxxx(location);
} else {
// query all record in db
result=customerRepository.findxxx();
}
}
} catch (Exception e) {
throw new SystemException();
}
return result;
}
public List<Client> retrieveEntityRecords(RequestParam request) {
List<String> ids = request.getId();
String location = request.getLocation();
boolean idsCk = CollectionUtils.isNotEmpty(ids) && ids.size() > 0;
boolean locationCk = !StringUtils.isEmpty(location);
List<Client> result;
try {
if (idsCk) {
if (locationCk) {
// use [ids location] query db
result=clientRepository.findxxx(ids,location);
} else {
// use [ids] query db
result=clientRepository.findxxx(ids);
}
} else {
if (locationCk) {
// use [location] query db
result=clientRepository.findxxx(location);
} else {
// query all record in db
result=clientRepository.findxxx();
}
}
} catch (Exception e) {
throw new SystemException();
}
return result;
}
霹雳青
请教MySql中使用表子查询时,试着先排序后分组,出现排序失效的原因?
1,今天试着码了一下教程里的题目,是找出每一个班级的身高最高的学生,用的是先order by降序排序所有学生升高,再用 group by分组每一个班级取第一个值,却发现当使用子查询时,得到的仍旧是未排序时的结果,即没有取到最高身高,想问下为何使用子查询时,order by会失效,谢谢!
↑这是建立的表,有班级和身高记录
↑使用group by查询一切正常,获得的都是每个id班级的第一个记录
↑使用order by查询一切正常,获得的是按照年龄降序排序的结果
↑当使用表子查询时,结果和前面单独group by一样,排序并没有生效,下面是代码 select from (select from student_text2 order by height desc) as student_wudi group by c_id;(有人说加limit会有用,试过无效)
尝试着将select范围添加进去,发现并没啥用...select student_wudi. from (select from student_text2 order by height desc) student_wudigroup by c_id;
以上就是遇到的问题,可能对大佬来说是小问题,不过这着实困扰我..希望能得到帮助,谢谢!
霹雳青
像很多网站(比如电商)里的筛选功能一般是如何实现的?
我的思路如下:
数据表:分类(编号,名称)筛选项(编号,名称,分类编号,显示顺序) 如"品牌"就是一个筛选项.筛选点(编号,名称,所属筛选项编号,显示顺序) 如"小米"就是一个筛选点.商品表(sku编号,分类编号)商品属性表(sku编号docid,筛选点编号集合content) 【全文检索表】
其中筛选点编号集合content字段存储内容如:101 102 108 110 230
SQL逻辑:根据"分类编号"查询"筛选项"表获得"筛选项编号".根据"筛选项编号"查询"筛选点"表获得"筛选点编号".上面两点就可以拿到上图筛选条件的界面数据了.
筛选链接的SQL逻辑:
1.筛选链接形如:
list.php?category=分类编号&property=筛选点编号集合
list.php?category=1&property=2_4_5
2.全文检索逻辑:为了避免MySQL和PG之争,这里以SQLite为例.
商品属性表sku_property(sku编号docid,属性点集合content)
交集:
SELECT docid FROM sku_property
WHERE content MATCH '2 4 5'
ORDER BY docid DESC LIMIT 10 OFFSET 20;
分页:
ORDER BY docid DESC LIMIT 10 OFFSET 20;
排序:
SELECT * FROM sku WHERE id IN ($docids)
ORDER BY 销量|价格|评论数|上架时间 DESC;
其中"销量|价格|评论数|上架时间"都是商品表sku里的字段.本质上相当于对多个字段进行排序:
ORDER BY id DESC, 评论数 DESC
这就存在一个问题,第二页的商品的评论数可能比第一页的多,这是不符合要求的.
如果要符合要求,可以考虑使用表连接:
select * from sku
inner join sku_property on sku.id = sku_property.docid
where sku.category = 1
and sku_property.content MATCH '2 4 5'
order by sku.评论数 DESC LIMIT 10 OFFSET 20;
3.$_GET['property']筛选点参数验证逻辑:首先property的元素数量不能多于当前分类的所有筛选项的数量.注意不是筛选点的数量,因为筛选项里只能单选筛选点.
//筛选点集合:$_GET['property']
$property = array(筛选点_2, 筛选点_4, 筛选点_5);
//防御式编程:如果$property跟"筛选项_1"中的array(筛选点_1, 筛选点_2)的交集大于1,则直接拒绝搜索.
$cat = array(
筛选项_1 => array(筛选点_1, 筛选点_2),
筛选项_2 => array(筛选点_3, 筛选点_4),
筛选项_3 => array(筛选点_5, 筛选点_6),
);
可行性:
京东:平板电视商品筛选 共 4007个商品笔记本商品筛选 共 49431个商品 (单条件页面耗时:0.241秒,条件越多,页面耗时越少)手机商品筛选 共 6152个商品
全文检索中,条件越多(交集),应该是越慢吧?求解惑.京东不知道是用什么实现的,条件越多,耗时反而越少?京东是用solr的facet的思路吗?如果是,facet的原理是什么?
SQLite全文检索:单个关键词,50万条记录,0.03秒(官方测试).10个关键词,5万条记录,0.03秒(个人简单粗暴的估算,并不准确).一个商品分类使用一个SQLite数据库来存储商品的属性(筛选点).如果是用MySQL的话则可以一个分类对应一张全文检索的属性表.我猜性能应该还是可以接受的.