假设我有100组3个值.第一个值是时间,第二个值是x位置,第三个值是y位置.例如,这将是一个超过100秒的点的xy位置.我有PHP背景.在PHP中,我会使用这样的3D关联数组:
position["time"]["x"]["y"]
Run Code Online (Sandbox Code Playgroud)
所以我可以在特定时间访问x,y值.你会如何在c#中做到这一点?我认为像列表和字典这样的泛型会做到这一点.但我不知道如何为3D数据集实现键值.
我有两个表订购产品和产品原料.这是表结构:
有序产品表:
+-----+---------+-----------+----------+--------------+
| id | orderid | productid | quantity | productgroup |
+-----+---------+-----------+----------+--------------+
| 117 | 1016186 | 265385 | 5 | Main |
| 118 | 1016186 | 407454 | 6 | Main |
| 119 | 1016186 | 975045 | 7 | Main |
| 120 | 1016186 | 975046 | 8 | Main |
+-----+---------+-----------+----------+--------------+
Run Code Online (Sandbox Code Playgroud)
productsinstocks表:
+----+---------+-----------+----------+
| id | stockid | productid | quantity |
+----+---------+-----------+----------+
| 20 | 903958 | 265385 | 200 …Run Code Online (Sandbox Code Playgroud) 我正在做一个项目,在该项目中,我应该至少生成70000个包含8个字母数字字符的代码。密码必须唯一。目前,我正在使用php通过以下功能生成这些代码:
function random_unique_serial($length, PDO $conn) {
$codeCheck=FALSE;
while (!$codeCheck) {
$characters = '0123456789abcdefghijklmnopqrstuvwxyz';
$charactersLength = strlen($characters);
$randomCode = '';
for ($i = 0; $i < $length; $i++) {
$randomCode .= $characters[rand(0, $charactersLength - 1)];
}
$sql = "SELECT * FROM codes WHERE code=:code";
$st = $conn->prepare($sql);
$st->bindvalue(":code", $randomCode, PDO::PARAM_STR);
$st->execute();
$count = $st->rowcount();
if ($count==0) {
$codeCheck=TRUE;
} else {
$codeCheck=FALSE;
}
}
return $randomCode;
}
Run Code Online (Sandbox Code Playgroud)
如您所见,此代码检查数据库中是否生成了每个代码,以确保它不是重复的。这在理论上应该起作用。但是,这非常慢,并且导致请求超时。我尝试增加执行时间,但这也无济于事。
然后,我决定使用数据库端方法并使用此解决方案: 使用MySQL生成随机且唯一的8个字符串
这也非常慢,并且某些生成的代码长度少于8个字符。
您能否提出更好的解决方案?
我有一个名为资产的表。这是 ddl:
create table assets (
id bigint primary key,
name varchar(255) not null,
value double precision not null,
business_time timestamp with time zone,
insert_time timestamp with time zone default now() not null
);
create index idx_assets_name on assets (name);
Run Code Online (Sandbox Code Playgroud)
我需要为每个资产名称提取最新的(基于 insert_time)值。这是我最初使用的查询:
SELECT DISTINCT
ON (a.name) *
FROM home.assets a
WHERE a.name IN (
'USD_RLS',
'EUR_RLS',
'SEKKEH_RLS',
'NIM_SEKKEH_RLS',
'ROB_SEKKEH_RLS',
'BAHAR_RLS',
'GOLD_18_RLS',
'GOLD_OUNCE_USD',
'SILVER_OUNCE_USD',
'PLATINUM_OUNCE_USD',
'GOLD_MESGHAL_RLS',
'GOLD_24_RLS',
'STOCK_IR',
'AED_RLS',
'GBP_RLS',
'CAD_RLS',
'CHF_RLS',
'TRY_RLS',
'AUD_RLS',
'JPY_RLS',
'CNY_RLS',
'RUB_RLS',
'BTC_USD'
)
ORDER BY …Run Code Online (Sandbox Code Playgroud) sql postgresql greatest-n-per-group distinct-on postgresql-performance
mysql ×2
c# ×1
distinct-on ×1
generics ×1
left-join ×1
php ×1
postgresql ×1
random ×1
select ×1
sql ×1