鍍金池/ 問(wèn)答/ 數(shù)據(jù)庫(kù)問(wèn)答
笨笨噠 回答

用group by語(yǔ)句:

select departmentName, count(*)
from tableName
group by departmentName;
菊外人 回答
下列代碼啟用,不取 model 文件,可以獲取到數(shù)據(jù)
不明白這部分是什么意思
catch證明PlantUnitModel.getPlantUnitModel().findAll這個(gè)Promise執(zhí)行了,所有錯(cuò)誤應(yīng)該是$ne,sequelize為了避免sql注入默認(rèn)不能把$ne這類操作符當(dāng)字符串處理。
亮瞎她 回答

每個(gè)docker容器都有自己的ip,一般docker的ip是以172.17.0.x這樣的形式分配的。
你的宿主機(jī)也是有ip地址的。你在docker里面寫127.0.0.1是有問(wèn)題的,那只會(huì)指向你自己的docker本機(jī)。
正確的做法是,寫成宿主機(jī)的ip地址就可以了。

歡迎加Q群交流討論Java技術(shù):696883318

只愛你 回答

查出每天內(nèi)的,程序不就可以二次處理算出周內(nèi)和月內(nèi)的充值總額了么

凹凸曼 回答
  1. 使用MySQL中間件分表 (可以按月分表) (不是比較好的解決方案)
  2. 建議使用分布式數(shù)據(jù)庫(kù) 例如TiDB 或者阿里云的商用分布式數(shù)據(jù)庫(kù)
久不遇 回答

按照正常情況,使用 http(s) 訪問(wèn) mongodb 的 27017 端口是可以訪問(wèn)的,它只會(huì)返回 It looks like you are trying to access MongoDB over HTTP on the native driver port. 這個(gè)提示,并不提供任何服務(wù),意思是,你試圖使用 http 訪問(wèn)原生驅(qū)動(dòng)接口,也就是數(shù)據(jù)庫(kù)接口。其中要使用 https 的話,需要開啟 ssl 支持,詳見https://docs.mongodb.com/manual/tutorial/configure-ssl/index.html

而從你的日志來(lái)看,你訪問(wèn)之后報(bào)了 ssl 握手失敗,那應(yīng)該是 mongodb 的 ssl 配置出現(xiàn)了問(wèn)題。

如果你是想使用 mongodb 提供的 http 頁(yè)面查看日志和統(tǒng)計(jì)以及 rest 接口,要使用 httpinterface = true 配置開啟,其端口是 28017。但題主訪問(wèn)的是 27017 端口,看來(lái)不像是使用這個(gè)功能。

而如果題主是想使用瀏覽器作為 mongodb 的客戶端來(lái)使用其數(shù)據(jù)庫(kù)功能(像phpmyadmin 那樣的工具),那 mongodb 本身是不提供這個(gè)功能的??梢允褂?sleepy.mongoose 實(shí)現(xiàn)這個(gè)。

九年囚 回答

當(dāng)你決定使用存儲(chǔ)過(guò)程的時(shí)候,那么整個(gè)事務(wù)是在MYSQL端完成的。

對(duì)于事務(wù)競(jìng)爭(zhēng)優(yōu)化的主要一點(diǎn)就是減少事務(wù)鎖時(shí)間。

你選擇了使用存儲(chǔ)過(guò)程就可以不用再代碼中開啟事務(wù),深度優(yōu)化即將事務(wù)SQL在MYSQL端執(zhí)行(存儲(chǔ)過(guò)程)

以下是類似的秒殺事務(wù)落地的存儲(chǔ)過(guò)程

-- 秒殺執(zhí)行存儲(chǔ)過(guò)程
DELIMITER $$ -- ; 轉(zhuǎn)換為 $$
-- 定義存儲(chǔ)過(guò)程 in 輸入?yún)?shù)   out 輸出參數(shù)
-- ROW_COUNT 返回上一條修改類型sql(delete、insert、update)的影響函數(shù)
-- row_count 0 未修改數(shù)據(jù) >0修改的函數(shù) <0 SQL錯(cuò)誤、未執(zhí)行修改sql
CREATE PROCEDURE `seckill`.`execute_seckill`
  (in v_seckill_id bigint,in v_phone bigint,
    in v_kill_time TIMESTAMP ,out r_result int)
  BEGIN
    DECLARE insert_count int DEFAULT 0;
    START TRANSACTION ;
    insert ignore into success_killed
      (seckill_id,user_phone,create_time)
      VALUES (v_seckill_id,v_phone,v_kill_time)
    select ROW_COUNT() into insert_count;
    if (insert_count = 0) THEN
      ROLLBACK;
      set r_result = -1;
    ElSEIF(insert_count < 0) THEN
      ROLLBACK;
      set r_result = -2;
    ELSE
      UPDATE seckill
      set number = number - 1
      where seckill_id = v_seckill_id
        and end_time > v_kill_time
        and start_time < v_kill_time
        and number > 0;
        SELECT row_count() into insert_count;
        if (insert_count = 0) THEN
          ROLLBACK;
          set r_result = 0;
        ElSEIF(insert_count < 0) THEN
          ROLLBACK;
          set r_result = -2;
        ELSE
          COMMIT;
          SET r_result = 1;
        END if;
    END if;
  END;
$$
-- 存儲(chǔ)過(guò)程定義結(jié)束

DELIMITER ;

set @r_result=-3;
-- 執(zhí)行存儲(chǔ)過(guò)程
call execute_seckill(1003,18820116735,now(),@r_result);

-- 獲取結(jié)果
select @r_result;

這屬于并發(fā)優(yōu)化的階段了,不要過(guò)度依賴存儲(chǔ)過(guò)程,其一般用于簡(jiǎn)單的邏輯

忘了我 回答

RTFM
https://developer.mozilla.org...

拖到最下面看支持率:

clipboard.png
可以用,是因?yàn)闉g覽器良心

萌面人 回答

是不是可以再加個(gè)屬性值通過(guò)id去排序呢

                      {id:1,TITLE: "look", SHZT: "通過(guò)"}
                      {id:2,TITLE: "see", SHZT: "未通過(guò)"}
                      {id:3,TITLE: "watch", SHZT: "未審核"}
短嘆 回答

workerman更新后有變化,最后按workerman官網(wǎng)文檔上的安裝方式使用

哎呦喂 回答

all對(duì)應(yīng)的是req.query['xxx'],其他不行

雨蝶 回答

你是要用CREATE TABLE table_name1 AS SELECT * from table_name2

冷溫柔 回答

select count(*) from table_name where ~~~
手機(jī)碼字,大概意思是這樣

熟稔 回答

會(huì)不會(huì)是你的closeConn這個(gè)變量的設(shè)置有問(wèn)題,導(dǎo)致數(shù)據(jù)連接并沒(méi)有歸還到連接池? 把相關(guān)代碼發(fā)上來(lái)看看

有你在 回答

關(guān)于{dbstats: 1}意思:

  • 查詢條件是{dbstats: 1}({"query": {"dbstats": 1}})
  • 庫(kù)名是bar({ns: 'bar'})
  • 執(zhí)行的是command操作({op: 'command'})

因此執(zhí)行的語(yǔ)句是:

db.runCommand({dbstats: 1});

它實(shí)際上就是db.stats()方法的內(nèi)部操作:

rs0:PRIMARY> db.stats
function (scale) {
    return this.runCommand({dbstats: 1, scale: scale});
}

mongos> sh.status()
databases:
    {  "_id" : "foo",  "primary" : "shard1",  "partitioned" : false }
    {  "_id" : "bar",  "primary" : "shard0",  "partitioned" : false }

這個(gè)輸出的意思是現(xiàn)在有兩個(gè)集合,foo/bar,它們都沒(méi)有分片({"partitioned" : false}),因?yàn)闆](méi)有分片,所以實(shí)際承載它們的只是一個(gè)分片。分別們于shard1/shard0上({"primary" : "shard1"}/{"primary" : "shard0"}),不是你理解的統(tǒng)計(jì)另外一個(gè)shard中的庫(kù)。再者,這個(gè)命令是從mongos上執(zhí)行的,mongos本來(lái)就連接著所有的分片,也不存在所謂統(tǒng)計(jì)“另外一個(gè)shard”。


最后執(zhí)行時(shí)間太長(zhǎng)的問(wèn)題,確實(shí)db.stats()不應(yīng)該執(zhí)行這么久。這個(gè)問(wèn)題可能跟特定版本的bug有關(guān)系,或者跟你的環(huán)境有一些聯(lián)系,需要具體分析日志。建議去jira.mongodb.org開ticket詢問(wèn)情況。

囍槑 回答

我看你問(wèn)過(guò)一個(gè)類似的問(wèn)題,也沒(méi)人回答,主要是問(wèn)題點(diǎn)描述不清楚,大家想回答也無(wú)從下手。

只能給你說(shuō)一下group by的基本用法:
group by子句中的字段,是作為分組用的,在你給的例子中有三個(gè)字段:R.WHSEID,RD.STORERKEY,RD.SKU,剩余的2個(gè)字段是計(jì)算字段,不應(yīng)該放在group by中。

使用group by子句后,select子句后的字段,只能是group by中出現(xiàn)的字段,或通過(guò)聚合函數(shù)(min,max,avg等)計(jì)算字段。
在你給的例子中:sum(RD.QTYRECEIVED)是正確的;
下面兩個(gè)字段是不正確,需要加聚合函數(shù)(min,max,avg等),因?yàn)間roup by后同一個(gè)分組存在多條數(shù)據(jù),數(shù)據(jù)庫(kù)沒(méi)法判定取哪一條記錄。
RD.QTYRECEIVED,
RD.LOTTABLE04+8/24 AS LOTTABLE04

敢試 回答

select * from A left join R on R.aid=A.id left join B on B.rid=r.id and x=1
不是很懂為什么說(shuō)用left join不行