我有一个带有"tag"和"category"列的表.标签可能包含空格,但我想通过一个带有破折号而不是空格的查询字符串来过滤它们(它来自一个URL slug).
我在mysql上运行以下查询:
SELECT GROUP_CONCAT(tag SEPARATOR ',' ) AS tags
FROM tags
GROUP BY category
HAVING REPLACE( tags, ' ', '-' ) like "%a%"
Run Code Online (Sandbox Code Playgroud)
结果是:
first-tag,second-tag
third-tag,fourth-tag
fifth-tag
Run Code Online (Sandbox Code Playgroud)
有人可以解释为什么返回的标签也有破折号?我希望(并希望)将REPLACE用于HAVING语句的过滤,但查询返回的原始值.我怎么做到这一点?
这里有一个小提琴供您参考:http://sqlfiddle.com/#!2/d7573/1
谢谢!
编辑(由戈登):
对于那些感兴趣的人,在这个更简单的查询版本中会出现此问题:
SELECT GROUP_CONCAT(tag) AS tags
FROM tags
HAVING REPLACE(tags, ' ', '-') is not null;
Run Code Online (Sandbox Code Playgroud)
正如@Razvan指出的那样,这是一个参考问题.它不会group_concat()直接发生在having.
我试图将一些元素排成一行,这样它们都适合容器的宽度.为了防止它们进行自动换行,我将"white-space:nowrap"添加到父级,并为子级添加"white-space:normal"以允许它们包装文本(根据需要).
问题是,使用此配置,最右边的孩子有时会超过父级的宽度.

HTML:
<div id="container">
<div class="child">
child 1
</div>
<div class="child">
child 2 text that might be long enough to wrap, but still exceed the parent
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS:
#container {
white-space: nowrap;
width: 200px;
background: yellow;
border: 1px solid brown;
padding: 5px;
}
.child {
display: inline-block;
border: 2px solid red;
vertical-align: top;
white-space: normal;
}
Run Code Online (Sandbox Code Playgroud)
http://jsfiddle.net/7e5TU/1/(如果问题没有立即出现,请更改文本的长度).
我知道我可以用一张桌子来解决它,并且左边的孩子可能有浮动,右边有"溢出:隐藏",但我认为没有理由不这样做.
任何人都可以提供一些见解吗?我很想知道盒子模型中的内容会导致这种行为.谢谢!
我试图找到一种方法来封装Javascript而不使用iframe.理想情况下,我想要一种在父页面上加载外部HTML组件(小部件)的方法,而不需要使用iframe来加载两步(首先加载主页,然后才加载iframe内容) ).
是否有可能通过一些新的Web组件技术实现这一点 - 影子DOM /模板/导入?我能够接近将HTML添加到shadow DOM并封装CSS,但无法确认是否可以为组件的javascript执行获取单独的文档.