我有一个 JSON 对象数组,并希望返回一个特定的节点。为了简化我的问题,假设数组可能如下所示:
[
{"Race": "Orc", "strength": 14},
{"Race": "Knight", "strength": 7},
...
]
Run Code Online (Sandbox Code Playgroud)
比如说我想知道骑士的实力。函数JSON_SEARCH,返回路径'$[1].Race',使用路径运算符我可以获得强度。有没有办法将这两者结合起来,所以我可以做以下事情?
SELECT someFunc(myCol,'$[*].Race','Orc','$.strength') AS strength
FROM myTable
Run Code Online (Sandbox Code Playgroud)
我正在使用 MySQL 8.0.15。
最近安装了MySQL 8.0.11 GA,想优化一些视图,功能,...通常我是这样的:
CREATE TABLE `PublicHoliday` (
`PublicHoliday_ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
`PublicHoliday_Name` varchar(45) NOT NULL,
`CompanyGroup_ID` int(2) unsigned NOT NULL,
`Holiday` date NOT NULL,
`State_ID` int(2) unsigned NOT NULL,
PRIMARY KEY (`PublicHoliday_ID`),
UNIQUE KEY `PublicHoliday_Comb` (`CompanyGroup_ID`,`Holiday`,`PublicHoliday_Name`,`State_ID`),
CONSTRAINT `CompanyGroup_PublicHoliday` FOREIGN KEY (`CompanyGroup_ID`) REFERENCES `CompanyGroup` (`CompanyGroup_ID`) ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
Run Code Online (Sandbox Code Playgroud)
使用 MySQL 5.7 我不得不做类似的事情
SELECT CompanyGroup_ID,
CAST(CONCAT('[',(
GROUP_CONCAT(
DISTINCT JSON_OBJECT(
'Holiday', Holiday,
'PublicHoliday_Name', PublicHoliday_Name,
'PublicHoliday_ID', PublicHoliday_ID
)
ORDER BY Holiday ASC
)
),']') AS JSON) AS …Run Code Online (Sandbox Code Playgroud) 我尝试通过 Thruway 设置一个可以管理多个组的 websocket 服务器。类似于聊天应用程序,每个客户端可以同时订阅一个或多个,并将消息广播到整个聊天室。我设法用一个古老版本的 Ratchet 做到了这一点,但由于它运行得不是很流畅,我想切换到高速公路。可悲的是,我找不到任何可以管理群组的东西。到目前为止,我作为 websocket-manager 有以下内容,并且客户端正在使用 Autobahn|js (18.x) 的当前版本。
有没有人知道是否可以使用以下内容管理订阅组?
<?php
require_once __DIR__.'/../vendor/autoload.php';
use Thruway\Peer\Router;
use Thruway\Transport\RatchetTransportProvider;
$router = new Router();
$router->addTransportProvider(new RatchetTransportProvider("0.0.0.0", 9090));
$router->start();
Run Code Online (Sandbox Code Playgroud) json ×2
mysql ×2
autobahn ×1
distinct ×1
mysql-8.0 ×1
mysql-json ×1
php ×1
phpwebsocket ×1
sql-order-by ×1
thruway ×1
websocket ×1