我有UUIDv4用户表作为主键。 如何选择ID为' e2eb5'?
的所有行我尝试了以下选择:
<Style TargetType="Button" x:Key="ButtonEllipse">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<StackPanel Orientation="Vertical">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0 0 0 10"/>
<Image x:Name="ButtonImage" HorizontalAlignment="Center" VerticalAlignment="Center" Stretch="None"
Source="{Binding Tag, RelativeSource={RelativeSource AncestorType=Button}}"/>
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
...
<Button Content="Test" Style="{StaticResource ButtonEllipse}" Tag="image.png" />
在我的应用程序中,用户不到一千,而UUID的第一部分应该只是识别它们所需的所有信息。
因此我希望用户详细信息如下所示:
SELECT * FROM "user" WHERE "id" LIKE 'e2eb5%';
而不是:
/users/e2eb5
编辑:
按照此处的建议查询:How to query UUID for postgres
/users/3b0fbfd6-0661-4880-b5c5-4659ed85fa96
不是可行的解决方案,因为它需要固定长度的uuid前缀或编写更复杂的查询。
答案 0 :(得分:2)
您可以将id
转换为text
并比较问题中的方式。
SELECT *
FROM "user"
WHERE "id"::text LIKE 'e2eb5%';
这需要将每行的id
转换为文本,因此对于吨或行,它可能会很慢。但是,少于1,000的工作应该没问题。