小编flu*_*ngo的帖子

检查MySQL表是否为空:COUNT(*)为零而LIMIT(0,1)是否为结果?

这是一个关于效率的简单问题,与MySQL实现有关.我想检查一个表是否为空(如果它是空的,则使用默认数据填充它).是否最好使用类似的语句SELECT COUNT(*) FROM `table`,然后比较为0,或者更好的做一个语句,SELECT `id` FROM `table` LIMIT 0,1然后检查是否返回任何结果(结果集有下一个)?

虽然我需要这个用于我正在研究的项目,但我也对MySQL如何处理这两个语句感兴趣,以及人们似乎建议使用的原因COUNT(*)是因为结果是缓存的,还是它实际上是通过每一行并添加到这在我看来是直观的.

mysql sql performance

11
推荐指数
2
解决办法
2万
查看次数

#define C中的元组

我希望能够定义一个表示其他宏所需参数的元组.

我认为展示我想要的最好的方式是展示一个例子:

#include <avr/io.h>

#define LED_PORT PORTB
#define LED_DDR  DDRB
#define LED_PIN  PB7
#define LED      LED_PORT, LED_DDR, LED_PIN

#define OUTPUT(port, ddr, pin) ddr |= 1 << pin

void main(void) {
    OUTPUT(LED);
}
Run Code Online (Sandbox Code Playgroud)

我希望OUTPUT(LED)然后扩展到:

LED_DDR |= 1 << LED_PIN
Run Code Online (Sandbox Code Playgroud)

我得到的问题是扩展的顺序,并导致以下错误:

宏"OUTPUT"需要3个参数,但只有1个参数

这适用于AVR项目,其中定制的硬件已定义LED,其他组件具有相应的LED_PORT LED_DDRLED_PIN.

然后,我想要定义更多可以使用此LED的宏,并使用适当的参数来映射到最简洁的方式.

这是否可以使用标准的C预处理器?

c avr c-preprocessor

8
推荐指数
1
解决办法
763
查看次数

标签 统计

avr ×1

c ×1

c-preprocessor ×1

mysql ×1

performance ×1

sql ×1