鍍金池/ 問答/ 數(shù)據(jù)庫問答
初心 回答

使用 case when 語句

SELECT            
    case          
    when day =6 then pic_1
    when day =9 then pic_2
    else ‘’      
    end                 
from   table     

示例:

mysql> select * from user;
+----+------+-------+-------+
| id | day  | pic_1 | pic_2 |
+----+------+-------+-------+
|  1 |    6 | a     | b     |
|  2 |    9 | a     | b     |
+----+------+-------+-------+
2 rows in set (0.00 sec)

mysql> SELECT id, day, case when day=6 then pic_1 when day=9 then pic_2  else  pic_1  end as pic from   user;
+----+------+------+
| id | day  | pic  |
+----+------+------+
|  1 |    6 | a    |
|  2 |    9 | b    |
+----+------+------+
2 rows in set (0.00 sec)
任她鬧 回答

mysql 的字符拼接可以了解下,如果你是想分組,然后讓數(shù)據(jù)拼接為字符可以使用 group_concat 函數(shù),其它的自己了解下,根據(jù)需求進行選擇就好。

還吻 回答
select 姓名,學科 from 姓名表 left join 學科表 on 學科表.id=姓名表.id and 學科表.狀態(tài)='選修'
綰青絲 回答

where dl.dealers_id = 161
下面的 id = 161 是不是錯了,查出來空的?
還是報了什么錯,getLastSql()打印一下語句

心夠野 回答

菜單表menu (id,name)
用戶菜單關(guān)系表user_menu (id,menuID,userID)
用戶表user (id,name)

select b.* from user_menu a inner join menu b on a.menuID = b.id inner join user c on a.userID = c.id where c.id = <uid>
菊外人 回答

是不是配置時沒有把wordpress這個目錄包括進去?

另外,樣式不能正確顯示,還可能是你引用 了http的css文件。

敢試 回答

最左原則是指:mysql會一直向右匹配直到遇到范圍查詢(>、<、between、like)就停止匹配,索引可以任意順序,mysql的查詢優(yōu)化器會幫你優(yōu)化成索引可以識別的形式,所以這兩條都是會命中索引的

厭惡我 回答

別人用了閉包,讓返回值和存儲關(guān)系對應(yīng)起來了,你沒有用,僅僅是簡單的計數(shù),根據(jù)返回先后展示結(jié)果,當然不對。
別人閉包的關(guān)鍵代碼就是

function(index){
        return function(response){
            response.pipe(bl(function(err,data){
                out[index] = data.length
                done+=1
                if (done==3){
                    for (var i = 0; i < out.length; i++) {
                        console.log(out[i])
                    }
                }
            }))
        }
    }(i)

部分代碼,它讓每次http.get都是調(diào)用順序相關(guān)的。

浪婳 回答

核心的座位和狀態(tài)存儲用redis bitmaps即可
位置映射到php邏輯代碼中

尋仙 回答

PHP里有個叫mysql_escape_string的函數(shù)

近義詞 回答

php不是常駐內(nèi)存的語言,和前端的交互也不是長連接,雖然也可以做到,但不建議這樣做,除非特定的使用場景,你說的這種情況,是想要后臺主動推送給前端,勢必就要維持這種長連接,我建議你當前端提交推送請求,后臺加入隊列處理后,前端就開始定時的請求后臺接口來判斷推送狀態(tài)。

貓小柒 回答

自己提問自己解答:DELETE s FROM tusers s WHERE s.id in (SELECT t.rid FROM (SELECT MAX(id) rid FROM tusers GROUP BY code,name HAVING COUNT(*) > 1) t)
在mysql中,刪除記錄有別名的時候,要在delete后面也加上個別名,否則報錯。

涼心人 回答

select操作不會造成死鎖。我猜測:update語句有大字段更新,導(dǎo)致事務(wù)時間較長(即長事務(wù)),同時,其他select語句引起update操作,當update同一條記錄時,就會導(dǎo)致死鎖(等待長事務(wù)的完成)。

離夢 回答

查詢 line_id 等于20, 且文章cid=6, 并且排除line_id=21這個需求你自己不覺得矛盾嗎? 既然已經(jīng)過濾只有 line_id=20, 那么結(jié)果集還需要排除line_id=21?

你的真實需求是不是 查詢 line_id 等于20但是不等于21的所有文章?

這個場景使用Exists語句

SELECT a.*
FROM article a
WHERE 
  EXISTS(SELECT al.article_id
             FROM article_line al
             WHERE al.line_id = 20 AND al.article_id = a.id)
  AND NOT EXISTS(
    SELECT al.article_id
    FROM article_line al
    WHERE al.line_id = 21 AND al.article_id = a.id)
  )
愿如初 回答

使用 WATCH/MULTI/EXEC ,watch能保證 MULTI 和 EXEC 之間的命令只有在watch的值沒有變化才執(zhí)行成功,見官方文檔https://redis.io/topics/trans...。

所以一般這個鎖的值要在整個系統(tǒng)保持唯一。

凝雅 回答

轉(zhuǎn)換成標準時間獲取小時數(shù)值做個case when判斷不就行了

憶往昔 回答
  1. 雖然你是多線程抓取數(shù)據(jù),但是你操作sqlite的client是同一個,對于sqlite來說,只有一個連接,只是你在多線程里插入的時候,順序是不能保證的,因為client是搶占式的
  2. 你可以把數(shù)據(jù)放到線程安全的數(shù)據(jù)集中,例如,ConcurrentQueue