我有一个MySQL表,它定义了特定客户类型的值.
| CustomerType | 关键领域1 | 关键领域2 | 价值|
每个客户类型都有10个与之关联的值(基于其他两个关键字段).
我正在创建一个与另一个客户类型(TypeA)完全相同的新客户类型(TypeB).我想插入"TypeB"作为CustomerType,但只需从TypeA的行中复制其他三个字段的值.
是否有一个SQL插入语句来实现这一目标?
像这样的东西:
insert into customers(customer_type, key1, key2, value) values
"TypeB" union
select key1, key2, value
from customers
where customer_type = "TypeA"
Run Code Online (Sandbox Code Playgroud)
谢谢 - 乔纳森
在JavaScript中,您可以在regex字符串替换操作中定义回调处理程序:
str.replace(/str[123]|etc/, replaceCallback);
Run Code Online (Sandbox Code Playgroud)
想象一下,你有一个字符串和替换的查找对象.
var lookup = {"str1": "repl1", "str2": "repl2", "str3": "repl3", "etc": "etc" };
Run Code Online (Sandbox Code Playgroud)
和这个回调函数:
var replaceCallback = function(match) {
if (lookup[match])
return lookup[match];
else
return match;
}
Run Code Online (Sandbox Code Playgroud)
您如何评估上述回调的表现?有没有可靠的方法来改善它?将
if (match in lookup) //....
Run Code Online (Sandbox Code Playgroud)
甚至
return lookup[match] || match;
Run Code Online (Sandbox Code Playgroud)
导致JS编译器优化的机会,还是一切都是一样的?
我有一个大文件,我正在读取,并将每几行转换为一个对象的实例.
由于我循环遍历文件,因此我使用list.append(instance)将实例存储到列表中,然后继续循环.
这是一个约100MB左右的文件,因此它不会太大,但随着列表变大,循环逐渐减慢.(我打印循环中每圈的时间).
这不是循环所固有的〜当我循环浏览文件时打印每个新实例时,程序以恒定速度进行〜只有当我将它们附加到列表时才会变慢.
我的朋友建议在while循环之前禁用垃圾收集,然后启用它并进行垃圾收集调用.
有没有其他人观察到list.append变慢的类似问题?有没有其他方法来规避这个?
我将尝试以下两个建议.
(1)"预先分配"记忆〜这样做的最佳方法是什么?(2)尝试使用deque
多个帖子(请参阅Alex Martelli的评论)建议内存碎片化(他有像我这样的大量可用内存)〜但没有明显的性能修复.
要复制这种现象,请运行下面答案中提供的测试代码,并假设这些列表包含有用的数据.
gc.disable()和gc.enable()有助于计时.我还会仔细分析所有时间花在哪里.
我需要方法,Add()和Update(),它们都创建一个datacontext并返回创建/更新的对象.
在我的单元测试中,我先调用Add(),做一些东西,然后调用Update().问题是Update()失败并出现异常:
System.Data.Linq.DuplicateKeyException: Cannot add an entity with a key that is already in use..
Run Code Online (Sandbox Code Playgroud)
我理解这个问题,但想知道该怎么办呢?我已经阅读了一些关于如何处理多个datacontext对象的内容,并且从我听到过这种方式是可以的.
我知道实体仍然附加到Add()中的datacontext但我需要找出如何解决这个问题?
提前致谢
我有一段时间没有用GDI写过任何东西(从来没有和GDI +一起),我只是在做一个有趣的项目,但对于我的生活,我无法弄清楚如何加倍缓冲GDI +
void DrawStuff(HWND hWnd) {
HDC hdc;
HDC hdcBuffer;
PAINTSTRUCT ps;
hdc = BeginPaint(hWnd, &ps);
hdcBuffer = CreateCompatibleDC(hdc);
Graphics graphics(hdc);
graphics.Clear(Color::Black);
// drawing stuff, i.e. bunnies:
Image bunny(L"bunny.gif");
graphics.DrawImage(&bunny, 0, 0, bunny.GetWidth(), bunny.GetHeight());
BitBlt(hdc, 0,0, WIDTH , HEIGHT, hdcBuffer, 0,0, SRCCOPY);
EndPaint(hWnd, &ps);
}
Run Code Online (Sandbox Code Playgroud)
以上作品(一切都完美呈现),但它闪烁.如果我改变Graphics graphics(hdc);对Graphics graphics(hdcBuffer);,我什么也看不到(虽然我应该bitblt'ing的buffer->的hWnd HDC底部).
我的消息管道设置正确(WM_PAINT调用DrawStuff),我通过调用强制每个程序循环WM_PAINT消息 RedrawWindow(window, NULL, NULL, RDW_ERASE | RDW_INVALIDATE | RDW_UPDATENOW);
我可能会采取错误的方式来做这个,任何想法?MSDN文档充其量是神秘的.
我已经从VS2008和MVC1向VS2010和MVC2更新了一个项目.我遇到Ninject没有在区域内找到控制器的问题
这是我的global.asax.cs文件:
namespace Website
{
// Note: For instructions on enabling IIS6 or IIS7 classic mode,
// visit http://go.microsoft.com/?LinkId=9394801
public class MvcApplication : NinjectHttpApplication
{
public static StandardKernel NinjectKernel;
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Balance",
"Balance/{action}/{month}/{year}",
new { controller = "Balance", action = "Index", month = DateTime.Now.Month, year = DateTime.Now.Year }
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Login", action = "Index", id = "" } // Parameter defaults …Run Code Online (Sandbox Code Playgroud) 我有一个包含"builds"目录的文件系统,每个目录都包含一个名为"build-info.xml"的文件.然而一些构建脚本生成的"集结info.xml"所以在这种情况下,我有一个有点不平凡SCons的SConstruct用来生成一个骨架集结info.xml,以便它可以被用作建立之前发生对进一步规则的依赖.
即:对于每个目录:
我的SConstruct看起来像这样:
def generate_actions_BuildInfoXML(source, target, env, for_signature):
cmd = "python '%s/bin/create-build-info-xml.py' --version $VERSION --path . --output ${TARGET.file}" % (Dir('#').abspath,)
return cmd
bld = Builder(generator = generate_actions_BuildInfoXML, chdir = 1)
env.Append(BUILDERS = { "BuildInfoXML" : bld })
...
# VERSION = some arbitrary string, not important here
# path = filesystem path, set elsewhere
build_info_xml = "%s/build-info.xml" % (path,)
if not os.path.exists(build_info_xml):
env.BuildInfoXML(build_info_xml, None, VERSION = build)
Run Code Online (Sandbox Code Playgroud)
我的问题是'scons …
我正在使用wordpress与这种类型的永久链接:
/%,比去年%/%monthnum%/%postname%/
如果我使用这种类型的网址:example.com/2010/03/तकनीक
它将此url视为此example.com/2010/03/(通过忽略unicode字符)并显示2010年3月的存档列表.
如果我使用英文网址:example.com/2010/03/technology,那么它可以完美运行.
即使在标签页上也会出现此问题:例如example.com/tag/इंटरनेट被视为example.com/tag/并显示404页面.
为什么wordpress忽略了unicode字符?
如果我使用默认的查询字符串结构,那么即使使用unicode字符也能正常工作.
服务器信息:IIS7 Win2008服务器(启用了Url重写)Wordpress 2.9.2
假设我有以下字符串:
string str1 = "Hello World!";
string str2 = str1.SubString(6, 5); // "World"
Run Code Online (Sandbox Code Playgroud)
我希望在上面的例子str2中不复制"World",但只是最终成为一个新的字符串,指向相同的内存空间,只是它以6的偏移量和5的长度开始.
实际上我正在处理一些可能非常长的字符串,并且由于性能原因我对它在幕后的工作方式感兴趣.我不熟悉IL调查此事.
我到处寻找这个,但我似乎无法找到解决方案.也许我使用的是错误的条款.无论哪种方式,我都转向善于"信任",以帮助我找到答案.
我有两张桌子,我们称之为'工具'和'安装'
tools = id, name, version
installs = id, tool_id, user_id
Run Code Online (Sandbox Code Playgroud)
"工具"表记录了可用的工具,然后由用户安装并记录在"安装"表中.选择已安装的工具非常简单:
SELECT tools.name
FROM tools
LEFT JOIN installs
ON tools.id = installs.tool_id
WHERE user_id = 99 ;
Run Code Online (Sandbox Code Playgroud)
如何选择剩余的工具 - 用户#99尚未安装的工具?
如果这很痛苦,我很抱歉,但我似乎无法弄明白!谢谢您的帮助!
c# ×2
mysql ×2
performance ×2
.net ×1
append ×1
c++ ×1
class ×1
datacontext ×1
gdi+ ×1
generator ×1
insert ×1
javascript ×1
join ×1
linq-to-sql ×1
list ×1
ninject ×1
optimization ×1
permalinks ×1
php ×1
python ×1
regex ×1
scons ×1
sql ×1
string ×1
substring ×1
unicode ×1
winapi ×1
wordpress ×1