我的MySQL表结构是这样的.
USER
int id
varchar username
FRIEND_LIST
int user_id
int friend_id
Run Code Online (Sandbox Code Playgroud)
对于每个朋友关系,我在FRIEND_LIST中插入2条记录.如果用户1是用户2的朋友,则将下一行插入FRIEND_LIST
1,2
2,1
Run Code Online (Sandbox Code Playgroud)
我想得到特定用户朋友的朋友和朋友.
select应该返回列a,b,c.
a: user_id
b: friend_id
c: username (username of friend_id )
If 1 is friend of 2 and 3.
2 is friend of 3, 4 and 5
3 is friend of 5,6,7
Run Code Online (Sandbox Code Playgroud)
然后查询获得1的朋友和朋友的朋友应该返回:
1 2 two
1 3 three
2 1 one
2 3 three
2 4 four
2 5 five
3 1 one
3 5 five
3 6 six
3 7 seven
Run Code Online (Sandbox Code Playgroud)
我可以使用单个查询获取此行吗?
更新答案: …
我正在建立一个大型的多语种网站,我正在考虑采用不同的方法使其多语言化.我能想到的可能的替代方案是:
据我所知,Gettext函数应该是最有效的,但我的要求是应该可以更改原始参考语言(英语)中的文本字符串,而不会将该字符串的其他翻译自动恢复为英语只是因为几句话改变了.Gettext可以实现吗?
什么是资源要求最低的解决方案?
使用Gettext函数或PHP文件与数组或多或少同等资源要求?
有关更有效解决方案的其他建议吗?
我想在我的Cocoa应用程序中添加一个简单的单页HTML页面帮助.你能告诉我怎么做吗?我假设我只需要将一个糟糕的.html(可能还有一个.css?)文件放入Xcode的Cocoa项目中?
我知道,我知道...... Eric Lippert对这类问题的回答通常是" 因为它不值得设计,实施,测试和记录它的成本 ".
但是,我还是想要一个更好的解释......我正在阅读关于新C#4功能的博客文章,在关于COM Interop的部分中,以下部分引起了我的注意:
顺便说一句,这段代码使用了另外一个新功能:索引属性(仔细查看Range之后的那些方括号.)但是此功能仅适用于COM互操作; 您无法在C#4.0中创建自己的索引属性.
好的,但为什么呢?我已经知道并且后悔在C#中创建索引属性是不可能的,但这句话让我再次思考它.我可以看到几个很好的理由来实现它:
PropertyInfo.GetValue有一个index参数),所以遗憾的是我们无法在C#中利用它this属性名称可能没什么大不了的.它可以写出那种东西:
public class Foo
{
private string[] _values = new string[3];
public string Values[int index]
{
get { return _values[index]; }
set { _values[index] = value; }
}
}
Run Code Online (Sandbox Code Playgroud)
目前我知道的唯一解决方法是创建一个ValuesCollection实现索引器的内部类(例如),并更改Values属性以便它返回该内部类的实例.
这很容易做到,但很烦人......所以也许编译器可以为我们做!一个选项是生成一个实现索引器的内部类,并通过公共通用接口公开它:
// interface defined in the namespace System
public interface IIndexer<TIndex, TValue>
{
TValue this[TIndex index] { get; set; }
}
public …Run Code Online (Sandbox Code Playgroud) 我有一个Python脚本,它将执行许多需要根级权限的事情,例如在/ etc中移动文件,使用apt-get安装,等等.我目前有:
if os.geteuid() != 0:
exit("You need to have root privileges to run this script.\nPlease try again, this time using 'sudo'. Exiting.")
Run Code Online (Sandbox Code Playgroud)
这是检查的最佳方式吗?还有其他最佳做法吗?
我不是一个专业的网络开发人员,但我喜欢把网站作为一种业余爱好.最近,我一直在开发一个Rails应用程序,作为帮助我学习框架的项目.我的玩具应用程序的目标是通过其API从另一个服务中获取数据,并使我可以使用搜索功能进行查询.
但是,我想从中提取数据的服务对每分钟可执行的API调用数量施加了速率限制.我计划让我的应用程序运行每日更新,这可能会产生一系列API调用,远远超出外部服务提供的限制.我希望尊重外部网站的性能,因此希望限制我的应用程序执行调用的速度.
我已经做了一些搜索,我发现大量的教程材料和预构建的库都限制了对Web应用程序的入站 API调用,我几乎找不到关于控制出站调用流的讨论.
作为一个业余的Web开发人员和铁杆新手,我完全有可能在错误的地方执行错误的搜索.因此我的问题是:
是否有一个很好的网站聚合Rails教程,其中包含与限制出站API请求相关的材料?
是否有任何红宝石宝石或其他库可以帮助我限制请求?
我有一些关于如何使用基于队列的工作程序(如DelayedJob或Resque)来编写限制系统来管理API调用的想法,但我宁愿花费我的周末来构建网站的其余部分,如果有一个良好的预先已经建立了解决方案.
我的大学正在举办一个编程竞赛,并决定支持Turbo C(16位DOS版本)作为一个有效的编程环境.我刚刚读到PC ^ 2,即用于自动判断竞争的软件,不支持16位程序.
那么,我可以使用Turbo C的替代方案吗?我需要相同的头文件,编译器需要支持Turbo C支持的所有过时的C标准.但输出需要是32位.有没有可以满足这些条件的编译器?
我有一段代码,它根据C#编译器和运行时输出不同的结果.
有问题的代码是:
using System;
public class Program {
public static void Main() {
Console.WriteLine(string.Compare("alo\0alo\0", "alo\0alo\0\0", false, System.Globalization.CultureInfo.InvariantCulture));
}
}
Run Code Online (Sandbox Code Playgroud)
结果是:
Compiling with mono (gmcs) Compiling with .Net (csc)
Running with mono -1 -1
Running with .Net -1 0
Run Code Online (Sandbox Code Playgroud)
当使用.Net框架运行时,它如何输出不同的值?
(顺便说一句,根据http://msdn.microsoft.com/en-us/library/system.string.aspx,输出应该是0,所以mono的答案是不正确的,但这与我的问题无关.)
甚至生成的IL代码也(几乎)相同.
用.Net编译:
.method public hidebysig static void Main() cil managed
{
.entrypoint
// Code size 29 (0x1d)
.maxstack 8
IL_0000: nop
IL_0001: ldstr bytearray (61 00 6C 00 6F 00 00 00 61 00 6C 00 6F 00 …Run Code Online (Sandbox Code Playgroud) 对不起,如果有人询问.
就像我可以在C#项目中选择我希望它为.NET 2.0运行时构建一样,是否有可能针对旧版CRT构建本机c ++项目,让我们说来自visual studio 2005?
我想这是因为我有使用VS2005构建的外部SDK,但我想使用更新的IDE.
是否可以使用C#中的枚举执行以下操作?:
将枚举的选定值传递给方法(例如,如果枚举具有红色,绿色,橙色等成员,我可以传入Colors.Red).
在接受枚举的上述方法的方法体中,我可以说if(Enum == Colors.Red).
这会是什么语法?我似乎总是对此感到不安.
c# ×3
mysql ×2
.net ×1
api ×1
c ×1
c++ ×1
cil ×1
cocoa ×1
gettext ×1
mono ×1
msvcrt ×1
multilingual ×1
objective-c ×1
performance ×1
php ×1
privileges ×1
python ×1
root ×1
sql ×1
turbo-c ×1