我有表player
-s在许多一对多的关系与skill
-s
目标是通过单个查询列出球员及其"前3名技能".
create table player(
id int primary key
);
create table skill(
id int primary key,
title varchar(100)
);
create table player_skills (
id int primary key,
player_id int,
skill_id int,
value int
);
Run Code Online (Sandbox Code Playgroud)
查询:
SELECT
p.id,
group_concat(s.title SEPARATOR ', ') as skills
FROM player p
LEFT JOIN player_skills ps ON ps.player_id = p.id
LEFT JOIN skill s ON s.id = ps.skill_id
WHERE ps.value > 2
-- skills limit 3 some how ...
group …
Run Code Online (Sandbox Code Playgroud) 对这样的表进行排序的最佳方法是什么:
CREATE TABLE category(
id INT(10),
parent_id INT(10),
name VARCHAR(50)
);
INSERT INTO category (id, parent_id, name) VALUES
(1, 0, 'pizza'), --node 1
(2, 0, 'burger'), --node 2
(3, 0, 'coffee'), --node 3
(4, 1, 'piperoni'), --node 1.1
(5, 1, 'cheese'), --node 1.2
(6, 1, 'vegetariana'), --node 1.3
(7, 5, 'extra cheese'); --node 1.2.1
Run Code Online (Sandbox Code Playgroud)
要通过分级排序,它的ID或名字:
"比萨饼" //节点1
"piperoni" //节点1.1
"奶酪" //节点1.2
"额外的奶酪" //节点1.2.1
"vegetariana" //节点1.3
"汉堡" // node
2'coffee'// node 3
编辑:名称末尾的数字是更好地可视化结构,它不是用于排序.
编辑2:如上所述...... …
以下代码似乎不起作用,即使文件看起来很好.
images = new BufferedImage[32];
FileInputStream fis = null;
for (int i = 0; i < 32; i++) {
File file = new File("tiles\\"+i+".bmp");
if (!file.exists()){
System.out.println("File "+i+" failed");
}
try {
fis = new FileInputStream(file);
} catch (FileNotFoundException e) {
System.err.println(e + "" + i);
}
try {
images[i] = ImageIO.read(fis);
} catch (IOException e) {
System.err.println(e + "" + i);
}
if (images[i] == null) {
System.out.println("Image "+i+" failed");
}
}
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助.
编辑:结果是我尝试Graphics.drawImage(images [0]);,它给我一个空指针异常.这段代码完成得很好.
编辑:已更改按照建议移动了if(!file.exists()),并将文件包装在输入流中.
我有一个postgresql数据库和一个有几十亿行的表.当我尝试添加具有默认值的新列时:
ALTER TABLE big_table
ADD COLUMN some_flag integer NOT NULL DEFAULT 0;
Run Code Online (Sandbox Code Playgroud)
交易持续30多分钟......数据库日志开始发出警告.
有什么方法可以优化查询?
我注意到get_mime()现在已经折旧,那么创建以下函数的替代方法是什么?此功能通过我使用的cms使用,因此需要一个可靠的替代方案.
// Mime Type Checker
function get_mime ($filename,$mode=0) {
// mode 0 = full check
// mode 1 = extension check only
$mime_types = array(
'txt' => 'text/plain',
'htm' => 'text/html',
'html' => 'text/html',
'php' => 'text/html',
'css' => 'text/css',
'js' => 'application/javascript',
'json' => 'application/json',
'xml' => 'application/xml',
'swf' => 'application/x-shockwave-flash',
'flv' => 'video/x-flv',
// images
'png' => 'image/png',
'jpe' => 'image/jpeg',
'jpeg' => 'image/jpeg',
'jpg' => 'image/jpeg',
'gif' => 'image/gif',
'bmp' => 'image/bmp',
'ico' => 'image/vnd.microsoft.icon',
'tiff' => …
Run Code Online (Sandbox Code Playgroud) 我有50 000多家公司的数据库,不断更新(每月200多个).
重复内容是一个巨大的问题,因为名称并不总是严格/正确:
"超级1商店"
"超级一店"
"超级1商店"
编辑:另一个例子......可能需要不同的方法:
"Amy's Pizza"<--->"Amy and Company的有机比萨"
我们需要工具来扫描数据以寻找相似的名称.我对Levenshtein Distance和LCS有一些经验,但如果2个字符串相似,它们可以很好地进行比较...
在这里我需要扫描50 000个名字,每个可以分别对应并计算...总体相似度等级...
我需要建议如何攻击这个问题,预期的结果是有一个列表与10-20组非常相似的名称,并可能进一步调整灵敏度以获得更多结果.
我正在使用 tinymce 尝试扩展一个插件来显示具有特定布局的对话框:
editor.windowManager.open({
title: 'Title of my dialog',
body: [
{type: 'label', text: 'my label'},
{ name:'my_input', type: 'textbox'},
// { type: 'text', html:'some content with <b>bold</b> if posilbe!'},
// { type: 'html', value:'<div>with custom formating</div>'}
]
}
Run Code Online (Sandbox Code Playgroud)
我多次检查了tinymce.ui的文档,但可以找到一种在对话框的构造函数中添加html或文本组件的方法(如示例中的注释行)。
我知道有一个选项使用对话框的现成 html 模板。但也有很多事件和触发器,因此使用构造函数和 .ui 组件更适合我的情况。
我知道这不是完美的方法,但是在比较MySQL和其他数据库中的日期以仅用Y-m-31
作本月的最后一天时是否存在问题?
例如
SELECT * FROM orders WHERE date > 2015-02-01 AND date < 2015-02-31
我写了我的代码,但现在我想改变看看发生了什么.
在对象类字段中,
static final String msg="here";
Run Code Online (Sandbox Code Playgroud)
并在同一个对象中,在一个methot
public void givemessage(int no)
{
System.out.println("look.");
System.out.println(msg);
}
Run Code Online (Sandbox Code Playgroud)
在这里,当我从main打电话时,它给出了"here".但
public void names(String[] names)
{
String msg=" - ";
System.out.println(msg);
}
Run Code Online (Sandbox Code Playgroud)
在这里,当我从主打电话给它 - ,而不是"这里"BUt它是最终的静态.它为什么会改变,为什么没有编译错误?或者我误解了所有的java?
我有一个包含50多个VARCHAR(255)列的表.
主持人报告说,在少数字段中,有些内容被删除了250个字符.
检查这是预期的行为VARCHAR(255)
,我必须更新一些字段text
.但问题是他们不能给我细节/指导哪些领域出问题.
所以我最好的猜测是分析当前数据并找到通常存储长内容的列.
是否有一个很好的查询结构我可以使用:
- 每列的AVG长度.
- 每列的最大长度.
- 此列的长度为200+的行数.
mysql ×5
java ×2
php ×2
group-concat ×1
image ×1
postgresql ×1
sql ×1
tinymce ×1
tinymce-4 ×1
tree ×1